3流プログラマのメモ書き

元開発職→現社内SEの三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(VB.Net)RichTextBoxで最下行にスクロールする

したいこと:RichTextBoxをログ等の出力先にして、キャレットがRichTextBoxの最後尾に来るようにしたい。

要は表示データをRichTextBoxに入れたときに、最下部に自動的にスクロールしてほしいわけです。

で、このときはTextBoxBase.ScrollToCaret()が有用です。

For i As Integer = 0 To 100

RichTextBox1.AppendText(i.ToString() & vbNewLine)

RichTextBox1.ScrollToCaret()

Next

注意点ですが、上のソースのように、ループ内で ScrollToCaret() を使うと、処理が非常に遅くなります。

なので、ループの外で ScrollToCaret() したほうがいいのでしょうが、処理の経過をみるためにループ中にスクロールしてほしい時もありますよね。

10行おきに ScrollToCaret() するとかの処理が必要かもしれません。

参考:

RichTextBoxでスクロールが常に下にくるようにするには?

TextBox(またはRichTextBox)の最後の行までスクロールさせる

MSDN TextBoxBase.ScrollToCaret メソッド