Vb.net 带RichTextBox的Visual Basic自动滚动

Vb.net 带RichTextBox的Visual Basic自动滚动,vb.net,vba,visual-studio,scroll,multiline,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.ScrollT

我希望我的Richtextbox始终位于底部,“自动滚动”到结尾。 我在一些谷歌搜索中发现了这一点:

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

     End Sub
这似乎是可行的,但随着文本的更新,它会跳转到框的顶部,而另一个更新会跳转到框的底部。有人能帮我吗?还是有更好的方法将文本框保留在末尾

谢谢,
Max

您的代码可以正常工作—我建议您解决最初的问题,只需稍微修改代码并添加

RichTextBox1.SuspendLayout()
在你的潜艇开始时,以及

RichTextBox1.ResumeLayout()
最后

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

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

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