2017-05-28 104 views
0

我希望我的Richtextbox始终处于底部并“自动滚动”到最后。 我发现这与一些谷歌搜索:带有RichTextBox的Visual Basic自动滚动

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

    End Sub 

这似乎是工作,但作为文本更新它跳到箱子的顶部,并与另一个更新到了谷底。有人可以帮我吗?还是有更好的方法来保持文本框的最后?

感谢, 最大

回答

1

您的代码类型的工程─我的建议来解决您最初的问题是稍微改变你的代码,并在你的子年初增加

RichTextBox1.SuspendLayout() 

,并

RichTextBox1.ResumeLayout() 

最后。

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

有几种可能的行为。你想能够输入任何地方,或只能在文本的末尾输入?或者只是在某些情况下将光标放在末尾 - 例如,RichTextBox首次填充了一堆文本?或者也许别的东西。

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