【发布时间】:2011-06-22 15:24:10
【问题描述】:
我正在使用 RichTextBox 控件来显示应用程序日志。我通过调用 RichTextBox::AppendText 方法每秒更新一次控件。对我来说真正烦人的是光标一直滚动到最后一行文本。当用户需要分析一开始的日志时,它非常不舒服。我尝试了以下解决方案:
int pos = tb_logs.SelectionStart;
tb_logs.AppendText("log message");
tb_logs.SelectionStart = pos;
这并没有触及问题的核心,因为控制会定期重绘,这非常分散注意力。有更清洁的解决方案吗?
【问题讨论】:
-
这听起来有点奇怪,因为到最后应该明确地在某个地方完成。您确定附加代码不会将选择设置为结尾吗?
-
不,只是 AppendText("text"), AppendText("\t"), Appendtext("\n")
-
我发现了有趣的事情。仅当文本区域具有焦点时才会发生自动滚动。单击文本区域后出现问题。如果我不点击它,我可以在添加新消息的同时使用滚动条滚动消息并且文本不会跳转。
-
参见Prevent AutoScrolling in C# RichTextBox,它描述了同样的问题。
标签: c# richtextbox refresh autoscroll