【发布时间】:2012-09-26 18:55:05
【问题描述】:
如果我附加一些文本,RTB 会自动向下滚动,我该怎么做?
现在我正在使用:
conversationRtb.Rtf = tab.conversationRtb.Rtf;
conversationRtb.SelectionStart = conversationRtb.Text.Length;
conversationRtb.ScrollToCaret();
但是效果不好。有时它不会滚动到结尾,而是在结尾前一行。
有时它会产生很大的偏移。
我找不到原因。还有其他方法可以向下滚动吗?我找到了AutoScrollOffset,但没有例子说明它是如何工作的。
【问题讨论】:
-
这两个帖子可能会有所帮助。他们使用
User32.dll来代替滚动。 stackoverflow.com/questions/8535102/…dutton.me.uk/2011/08/31/richtextbox-scrolltocaret-bug -
我宁愿不要使用 user32.dll。我正在使用单声道,但外部库有问题。
-
好的。我刚刚添加了条件。如果 Windows 执行 @keyboardP 解决方案,则执行默认的 ScrollToCaret。似乎工作正常。
-
@keyboardP 评论中的“dutton.me.uk”链接似乎已损坏,但这里有一个等效的:dutton.me.uk/2011-08-31/richtextbox-scrolltocaret-bug(请注意,斜杠现在是 URL 中的连字符)。 ;-)
标签: c# winforms scroll richtextbox