2017-05-28 1 views
0

リッチテキストボックスを常に下に置き、最後に「自動スクロール」します。 私はいくつかのGoogle検索でこれを見つけた: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() 

を追加することで解決することをお勧め何WORKS-のあなたのコードの種類、

RichTextBox1.ResumeLayout() 

最後に。

ただし、カーソルが最後の行になく、何かを入力すると、文字がカーソルの前に表示されてからテキストの最後に移動します。私はあなたがその動作を望まないと思っています - その場合は、コードをKeyPressイベントに追加する必要があります。

いくつかの可能性があります。どこでも入力できるようにしたいのですか、テキストの最後にのみ入力できますか?または、特定の状況下で最後にカーソルを置くことができます。たとえば、リッチテキストボックスに最初にテキストが挿入されている場合などです。あるいは何か他のもの。

最も単純な解決策は、ユーザーがCtrl-Endキーを押すだけです。それは全くコードを必要としません。