Visual Basic Auto Scroll with RichTextBox

时间:2017-05-28 10:07:17

标签: vb.net vba visual-studio scroll multiline

我希望我的Richtextbox始终位于底部并“自动滚动”到最后。 我发现了一些谷歌搜索:

     Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
        RichTextBox1.SelectionStart = RichTextBox1.TextLength
        RichTextBox1.ScrollToCaret()

     End Sub

这似乎有效,但随着文本更新,它跳转到框的顶部,并在底部进行另一次更新。有人可以帮我吗?或者有没有更好的方法来保持文本框的结尾?

谢谢, 最大

1 个答案:

答案 0 :(得分:1)

您的代码类似 - 我建议您解决最初的问题是稍微改变您的代码并添加

RichTextBox1.SuspendLayout()

在你的潜艇开头,

RichTextBox1.ResumeLayout()

最后。

但是,如果光标不在最后一行并且您输入了某些内容,则在移动到文本末尾之前,该字符将出现在光标处。我猜你不想要这种行为 - 在这种情况下你应该将代码添加到KeyPress事件中。

有几种可能的行为。您希望能够在任何地方打字,还是只能在文本末尾打字?或者只是在某些情况下将光标放在末尾 - 例如,当RichTextBox首次填充一堆文本时?或者别的什么。

最简单的解决方案是用户只需按Ctrl-End键即可。这根本不需要任何代码。