【发布时间】:2018-02-02 05:00:59
【问题描述】:
我有一个 RichTextBox,我想在添加新文本时自动滚动到文本末尾。
这是我的代码:
private void outputWindowTextChanged(object sender, EventArgs e) {
rtb_outputWindow.SelectionStart = rtb_outputWindow.Text.Length;
rtb_outputWindow.ScrollToCaret();
}
我手动将一堆文本添加到 RichTextBox,如下所示:
updateOutputWindow("Lorem ipsum dolor sit amet, ..."); //These strings are really long
updateOutputWindow("Lorem ipsum dolor sit amet, ..."); //I shortened them for this question
结果如下:
在上面的屏幕截图中,您几乎看不到边缘下方实际上还有更多文本。你也可以看看右边的滚动条,看看下面还有一点点空间。
在上面的截图中,我使用右侧的滚动条手动向下滚动到底部;显示之前隐藏的文字。
有没有办法确保 RichTextBox 每次都自动滚动到最后?
【问题讨论】:
-
不确定这是否有效,但尝试将插入符号位置设置到文本框的末尾:
rtb_outputWindow.CaretPosition = rtb_outputWindow.CaretPosition.DocumentEnd; -
@TimothyGroote RichTextBox 不包含“CaretPosition”的定义。
-
@imsome1 如果您指的是该线程的已接受答案,那么这正是我目前正在做的事情。
-
尝试在您最后一次调用
updateOutputWindow之后直接放置您的“设置插入符号并滚动到它”代码
标签: c# scroll richtextbox