【问题标题】:RichTextBox scrollRichTextBox 滚动
【发布时间】:2010-08-25 14:14:56
【问题描述】:

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

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

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

我应该去哪里看?

【问题讨论】:

    标签: c# visual-studio-2005 richtextbox


    【解决方案1】:
    richTextBox1.Select(richTextBox1.TextLength, 0); // put caret at end
    richTextBox1.ScrollToCaret();
    

    如果要保留选择,则需要存储 SelectionStartSelectionLength 并在滚动后恢复选择。

    【讨论】:

    • 谢谢。这似乎有效。不过,我仍然不知道为什么我的两个程序的性能不同。
    • @SeaDrive:您在问题中没有提到性能。它是怎么回事?
    • 回复:性能。我不确定为什么一个版本的程序会滚动而一个版本不会。在执行速度方面与性能无关。
    【解决方案2】:

    您可以预先添加您的消息,以便最新消息始终位于顶部?

    rchLog.Text = newMessage + "\n" + rchLog.Text;
    

    【讨论】:

      猜你喜欢
      • 2013-10-25
      • 2011-06-22
      • 2018-02-02
      • 1970-01-01
      • 2011-12-02
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多