我希望我的Richtextbox始终位于底部并“自动滚动”到最后。 我发现了一些谷歌搜索:
Private Sub RichTextBox1_TextChanged(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
RichTextBox1.SelectionStart = RichTextBox1.TextLength
RichTextBox1.ScrollToCaret()
End Sub
这似乎有效,但随着文本更新,它跳转到框的顶部,并在底部进行另一次更新。有人可以帮我吗?或者有没有更好的方法来保持文本框的结尾?
谢谢, 最大
答案 0 :(得分:1)
您的代码类似 - 我建议您解决最初的问题是稍微改变您的代码并添加
RichTextBox1.SuspendLayout()
在你的潜艇开头,
RichTextBox1.ResumeLayout()
最后。
但是,如果光标不在最后一行并且您输入了某些内容,则在移动到文本末尾之前,该字符将出现在光标处。我猜你不想要这种行为 - 在这种情况下你应该将代码添加到KeyPress
事件中。
有几种可能的行为。您希望能够在任何地方打字,还是只能在文本末尾打字?或者只是在某些情况下将光标放在末尾 - 例如,当RichTextBox首次填充一堆文本时?或者别的什么。
最简单的解决方案是用户只需按Ctrl-End键即可。这根本不需要任何代码。