第1个回答 2008-12-02
这个问题问的不好。
文本(字符串)有多少行这个问题,有两种说法。
第一种情况是在内存中(doc)该文本有多少行,一般以回车符+换行符(Windows文本格式)作为行之间的分隔。既然是内存数据,所以很容易计算有多少行。
第二种情况是,在显示界面上(view),文本显示为多少行,这个行数取决于控件对文本的排版情况,该行数好像不容易取得。
第2个回答 2008-12-02
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中光标所在的行数
第3个回答 2008-12-02
int i= textBox1.GetLineFromCharIndex(textBox1.Text.Length)+1;
int j=textBox1.GetLineFromCharIndex(textBox1.SelectionStart)+1;
MessageBox.Show(j.ToString());
MessageBox.Show(i.ToString());
第4个回答 2008-12-02
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;
}
很简单,一个函数就搞定