C# textbox怎样获取里面文本有多少行???

用C#编辑记事本程序,状态栏里添加了显示“影响行数”,怎么才能获取textbox里面的文本共多少行??还有光标当前所在的行数??谢谢了... 用C#编辑记事本程序,状态栏里添加了显示“影响行数”,
怎么才能获取textbox里面的文本共多少行??还有光标当前所在的行数??
谢谢了
展开
 我来答
Jarhf
2008-12-02 · TA获得超过1862个赞
知道小有建树答主
回答量:1736
采纳率:25%
帮助的人:1028万
展开全部
2楼的兄弟,你算列数的方法也太牛逼了吧,那要是文本 有几百万个字符,你那循环要几百万次呀。
最简单的得到行和列的方法:
int totalline = textBox1.GetLineFromCharIndex(textBox1.Text.Length) + 1;//得到总行数。该行数会随着文本框的大小改变而改变;若只认回车符为一行(不考虑排版变化)请用 总行数=textBox1.Lines.Length;(记事本2是这种方式)
int index = textBox1.GetFirstCharIndexOfCurrentLine();//得到当前行第一个字符的索引
int line = textBox1.GetLineFromCharIndex(index) + 1;//得到当前行的行号,从0开始,习惯是从1开始,所以+1.
int col = textBox1.SelectionStart - index + 1;//.SelectionStart得到光标所在位置的索引 减去 当前行第一个字符的索引 = 光标所在的列数(从0开始)
Wang_Jiping
2008-12-02 · TA获得超过675个赞
知道小有建树答主
回答量:316
采纳率:0%
帮助的人:251万
展开全部
这个问题问的不好。
文本(字符串)有多少行这个问题,有两种说法。
第一种情况是在内存中(doc)该文本有多少行,一般以回车符+换行符(Windows文本格式)作为行之间的分隔。既然是内存数据,所以很容易计算有多少行。
第二种情况是,在显示界面上(view),文本显示为多少行,这个行数取决于控件对文本的排版情况,该行数好像不容易取得。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cailin066
2008-12-02 · TA获得超过199个赞
知道答主
回答量:385
采纳率:0%
帮助的人:168万
展开全部
int i= textBox1.GetLineFromCharIndex(textBox1.Text.Length)+1;
MessageBox.Show(i.ToString());//i为textbox文本的行数
int j=textBox1.GetLineFromCharIndex(textBox1.SelectionStart)+1;
MessageBox.Show(j.ToString());//j为textbox中光标所在的行数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kbtjh
2008-12-02
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
int i= textBox1.GetLineFromCharIndex(textBox1.Text.Length)+1;
int j=textBox1.GetLineFromCharIndex(textBox1.SelectionStart)+1;
MessageBox.Show(j.ToString());
MessageBox.Show(i.ToString());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q5331006
2008-12-02 · TA获得超过496个赞
知道小有建树答主
回答量:618
采纳率:0%
帮助的人:514万
展开全部
private void status()
{

int start = 0;
int cursor = richTxt.SelectionStart;
int line = richTxt.GetLineFromCharIndex(cursor);
while (start < cursor)
{
if (richTxt.GetLineFromCharIndex(start) != line)
{
start++;
}
else break;
}
int col = cursor - start+1;
line++;
toolStripStatusLabel1.Text = statusStrip1.Text = "line " + line + ",col " + col;
}

很简单,一个函数就搞定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式