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

问题描述 投票:4回答:4

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

c# winforms richtextbox
4个回答
9
投票

你可以尝试这样的事情。

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

        richTextBox1.SelectionStart = richTextBox1.Find(richTextBox1.Lines[lineNumber]);
        richTextBox1.ScrollToCaret();
    }

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


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();
}

0
投票

我不确定,如果它有一个方法,但如何计算Text中的换行符,然后设置插入符号(通过SelectionStartSelectionLength)和ScrollToCaret()


-1
投票

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

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

这将告诉你行数。

© www.soinside.com 2019 - 2024. All rights reserved.