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