如何将RichTextBox滚动到底部?

Ver*_*rry 72 c# scroll richtextbox winforms

我需要能够将RichTextBox滚动到底部,即使我没有附加文本也是如此.我知道我可以附加文本,然后使用它来设置选择开始.但是我想确保它在底部是出于视觉原因,所以我没有添加任何文本.

Bra*_*don 103

您可以尝试将SelectionStart属性设置为文本的长度,然后调用ScrollToCaret方法.

richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
Run Code Online (Sandbox Code Playgroud)

  • 我担心不太可靠.您有时会滚动,以便可以看到插入符号的顶部像素. (3认同)

DrW*_*rWu 17

RichTextBox如果它具有焦点并且您AppendText用来添加信息,它将保持滚动到最后.如果设置HideSelection为false,它将在失去焦点时保持其选择并保持自动滚动.

我设计了一个使用以下方法的Log Viewer GUI.它使用了一个完整的核心保持.摆脱此代码并将其设置HideSelection为false可将CPU使用率降低至1-2%.

//Don't use this!
richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();
Run Code Online (Sandbox Code Playgroud)


mxg*_*250 14

在WPF中,您可以使用ScrollToEnd:

richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();
Run Code Online (Sandbox Code Playgroud)