如何将RichTextBox滚动到底部?

时间:2009-05-21 22:07:19

标签: c# winforms scroll richtextbox

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

5 个答案:

答案 0 :(得分:102)

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

richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();

答案 1 :(得分:16)

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

我设计了一个使用以下方法的Log Viewer GUI。它使用了一个完整的核心保持。删除此代码并将//Don't use this! richTextBox.AppendText(text); richTextBox.ScrollToEnd(); 设置为false会使CPU使用率降至1-2%。

{{1}}

答案 2 :(得分:14)

在WPF中,您可以使用ScrollToEnd:

richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();

答案 3 :(得分:0)

代码应该写在富文本框的TextChanged事件中,如:

row = t//w

答案 4 :(得分:-1)

没有必要:

richTextBox.SelectionStart = richTextBox.Text.Length;

这就是诀窍:

richTextBox.ScrollToCaret();