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

时间:2010-12-01 09:57:06

标签: c# winforms richtextbox

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

4 个答案:

答案 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中的换行符然后设置插入符号(通过SelectionStartSelectionLength)和ScrollToCaret()

答案 3 :(得分:-1)

在这种情况下分开文本会有帮助吗? 例如:

string[] lines = myRichTextBox.Text.Split('\n');
int linesCount = lines.Length;

这将告诉你行数。