我需要能够滚动RichTextBox到底部,即使我不在添加文本。我知道我可以添加文本,然后使用它来设置选择开始位置。但是,为了视觉效果,我想确保它在底部,因此我不会添加任何文本。
我需要能够滚动RichTextBox到底部,即使我不在添加文本。我知道我可以添加文本,然后使用它来设置选择开始位置。但是,为了视觉效果,我想确保它在底部,因此我不会添加任何文本。
您可以尝试将SelectionStart属性设置为文本的长度,然后调用ScrollToCaret方法。
richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
RichTextBox
如果获得焦点并使用 AppendText
添加信息,则将保持滚动到末尾。如果将 HideSelection
设置为 false,则在失去焦点时它将保留其选择并保持自动滚动。HideSelection
设置为 false 将CPU使用率降至1-2%。//Don't use this!
richTextBox.AppendText(text);
richTextBox.ScrollToEnd();
在 WPF 中,您可以使用 ScrollToEnd:
richTextBox.AppendText(text);
richTextBox.ScrollToEnd();
代码应该在富文本框的TextChanged事件中编写,如下所示:
private void richTextBox_TextChanged(object sender, EventArgs e) {
richTextBox.SelectionStart = richTextBox.Text.Length;
richTextBox.ScrollToCaret();
}