如何将 RichTextBox 滚动到底部?
即使我没有附加文本,我也需要能够将 RichTextBox 滚动到底部。 我知道我可以附加文本,然后用它来设置选择开始。 不过,出于视觉原因,我想确保它位于底部,因此我不添加任何文本。
I need to be able to scroll a RichTextBox to the bottom, even when I am not appending text. I know I can append text, and then use that to set the selection start. However I want to ensure it is at the bottom for visual reasons, so I am not adding any text.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以尝试将 SelectionStart 属性设置为文本的长度,然后调用 ScrollToCaret 方法。
You could try setting the SelectionStart property to the length of the text and then call the ScrollToCaret method.
如果
RichTextBox
具有焦点并且您使用AppendText
添加信息,它将保持滚动到末尾。 如果将HideSelection
设置为 false,它将在失去焦点时保留其选择并保持自动滚动。我使用以下方法设计了一个日志查看器 GUI。 它用了一个完整的核心来跟上。 去掉这段代码并将
HideSelection
设置为 false 可以将 CPU 使用率降低到 1-2%。The
RichTextBox
will stay scrolled to the end if it has focus and you useAppendText
to add the information. If you setHideSelection
to false it will keep its selection when it loses focus and stay auto-scrolled.I designed a Log Viewer GUI that used the method below. It used up to a full core keeping up. Getting rid of this code and setting
HideSelection
to false got the CPU usage down to 1-2%.在 WPF 中,您可以使用 ScrollToEnd:
In WPF you can use ScrollToEnd:
代码应该写在富文本框的 TextChanged 事件中,例如:
Code should be written in the rich text box's TextChanged event like :