如何使用C#滚动到RichTextBox控件的指定行号?

Mr.*_*ith 5 c# richtextbox winforms

如何使用C#滚动到RichTextBox控件的指定行号?这是WinForms版本.

jva*_*hyn 9

你可以尝试这样的事情.

    void ScrollToLine(int lineNumber)
    {
        if (lineNumber > richTextBox1.Lines.Count()) return;

        richTextBox1.SelectionStart = richTextBox1.Find(richTextBox1.Lines[lineNumber]);
        richTextBox1.ScrollToCaret();
    }
Run Code Online (Sandbox Code Playgroud)

如果您在RichTextBox中有大量重复,这将无法正常工作.我希望它对你有用.

  • 这对我来说似乎很危险。当所需的行多次出现时,您的代码将始终跳转到第一次出现。 (2认同)

mar*_*gle 5

使用此代码,光标跳转到所需行的第一列。

它在任何情况下都能完美运行,即使需要的线路出现多次。

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();
}
Run Code Online (Sandbox Code Playgroud)