如何使用C#滚动到RichTextBox控件的指定行号?这是WinForms版本。
答案 0 :(得分:9)
你可以尝试这样的事情。
void ScrollToLine(int lineNumber)
{
if (lineNumber > richTextBox1.Lines.Count()) return;
richTextBox1.SelectionStart = richTextBox1.Find(richTextBox1.Lines[lineNumber]);
richTextBox1.ScrollToCaret();
}
如果RichTextBox中有很多重复,这将无法正常工作。我希望它对你有用。
答案 1 :(得分:2)
使用此代码,光标将跳转到所需行中的第一列。
无论如何,它都能完美运作。
void GotoLine(int wantedLine_zero_based) // int wantedLine_zero_based = wanted line number; 1st line = 0
{
int index = this.RichTextbox.GetFirstCharIndexFromLine(wantedLine_zero_based);
this.RichTextbox.Select(index, 0);
this.RichTextbox.ScrollToCaret();
}
答案 2 :(得分:0)
我不确定,如果它有方法,但是如何计算Text
中的换行符然后设置插入符号(通过SelectionStart
和SelectionLength
)和ScrollToCaret()
?
答案 3 :(得分:-1)
在这种情况下分开文本会有帮助吗? 例如:
string[] lines = myRichTextBox.Text.Split('\n');
int linesCount = lines.Length;
这将告诉你行数。