如何使用C#滚动到RichTextBox控件的指定行号?这是WinForms版本。
你可以尝试这样的事情。
void ScrollToLine(int lineNumber)
{
if (lineNumber > richTextBox1.Lines.Count()) return;
richTextBox1.SelectionStart = richTextBox1.Find(richTextBox1.Lines[lineNumber]);
richTextBox1.ScrollToCaret();
}
如果您在RichTextBox中有大量重复,这将无法正常工作。我希望它对你有用。
使用此代码,光标将跳转到所需行中的第一列。
它在任何情况下都能完美运行。
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();
}
我不确定,如果它有一个方法,但如何计算Text
中的换行符,然后设置插入符号(通过SelectionStart
和SelectionLength
)和ScrollToCaret()
?
在这种情况下分开文本会有帮助吗?例如:
string[] lines = myRichTextBox.Text.Split('\n');
int linesCount = lines.Length;
这将告诉你行数。