2010-08-25 42 views
1

我不确定在Visual Studio C#windows应用程序中使用RichTextBox发生了什么。这不是一个网络应用程序。RichTextBox滚动

我有一个处理多个文件的过程。在处理过程中,它使用AppendText在RichTextBox中发布进度报告。 (添加了换行符,保持整洁。)此过程从一个应用程序迁移到另一个应用程序。新应用程序中的表单是从头开始用新的RichTextBox创建的,代码被复制。

在原始应用程序中,当邮件到达框的底部时,它们开始滚动,因此新的文本行始终可见。在新的应用程序中,它不会滚动(尽管我希望它),因此新消息(包括指示该过程的最后一个消息)在底部之下不可见。我比较了这两个程序,但我没有看到其中的差别。我不明白这种行为会如何控制。影响焦点或刷新行为的程序有可能存在差异,或者其他。

我应该在哪里看?

回答

0

您可以只需预先您的消息,使最新的消息总是在顶部?

rchLog.Text = newMessage + "\n" + rchLog.Text; 
3
richTextBox1.Select(richTextBox1.TextLength, 0); // put caret at end 
richTextBox1.ScrollToCaret(); 
如果你想保持你需要存储 SelectionStartSelectionLength和滚动后恢复选择中的选择

+0

谢谢。这似乎工作。不过,我仍然不知道为什么我的两个程序在性能上有所不同。 – SeaDrive 2010-09-01 19:27:09

+0

@海洋驾驶:你在你的问题中没有提到性能。这是关于什么的? – 2010-09-01 20:23:57

+0

re:表现。我不确定为什么一个版本的程序会滚动而另一个不会。执行速度意义上与性能无关。 – SeaDrive 2010-09-02 19:54:27