如何将 RichTextBox 滚动到底部?

发布于 2024-07-20 05:53:32 字数 101 浏览 8 评论 0原文

即使我没有附加文本,我也需要能够将 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

浮世清欢 2024-07-27 05:53:32

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

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

You could try setting the SelectionStart property to the length of the text and then call the ScrollToCaret method.

richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
我家小可爱 2024-07-27 05:53:32

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

我使用以下方法设计了一个日志查看器 GUI。 它用了一个完整的核心来跟上。 去掉这段代码并将 HideSelection 设置为 false 可以将 CPU 使用率降低到 1-2%。

//Don't use this!
richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();

The RichTextBox will stay scrolled to the end if it has focus and you use AppendText to add the information. If you set HideSelection 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%.

//Don't use this!
richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();
始终不够爱げ你 2024-07-27 05:53:32

在 WPF 中,您可以使用 ScrollToEnd:

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

In WPF you can use ScrollToEnd:

richTextBox.AppendText(text);  
richTextBox.ScrollToEnd();
终陌 2024-07-27 05:53:32

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

private void richTextBox_TextChanged(object sender, EventArgs e) {
       richTextBox.SelectionStart = richTextBox.Text.Length;
       richTextBox.ScrollToCaret();
}

Code should be written in the rich text box's TextChanged event like :

private void richTextBox_TextChanged(object sender, EventArgs e) {
       richTextBox.SelectionStart = richTextBox.Text.Length;
       richTextBox.ScrollToCaret();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文