VisualBasic2005を使って通信ソフトを作っています。
その際にログ表示用にRichTextBoxを使用しているのですが、
データを受信するたびにコントロールが一番上に戻ってしまいます。
コントロールを常に一番下に持っていく方法はないのでしょうか?
自分なりに調べてみたのですが、どうしても上手く作動せず
皆様のお力をお借りしたいと思い、投稿させていただきました。
宜しくお願いします。
最終行に追加書き込みするのではだめですか?
又、それだけでは問題が解決しないように思います。
VB6.0 の場合ですけど下記が参考になると思います。
http://hanatyan.sakura.ne.jp/logbbs1/wforum.cgi?no=2544&reno=no&oya=2544&mode=msgview&page=840
http://hanatyan.sakura.ne.jp/logbbs1/wforum.cgi?no=2589&reno=no&oya=2589&mode=msgview&page=840
非常に迅速なお答えありがとうございます。
データ受信時にリッチテキストボックスにフォーカスがある場合、
下記の文を追加することで問題が解決しました。
RichTextBox1.SelStart = 2147483647
データ受信時にリッチテキストボックスにフォーカスがない場合、
スクロールバーが上手く動かないのでもう少し考えてみようと思います。
何かアドバイスがありましたら宜しくお願いします。
一応、解決しました。
これで解決にチェックを入れていいのかわからないのですが…
時間に猶予が無かったのでリッチテキストボックスの使用をやめて
テキストボックスを使用しました。
理由はわからないのですが、
テキストボックスの場合は、最終行に追加書き込みをすることで
スクロールが自動的に一番下に行きました。
花ちゃんさん、回答してくださって有難うございました。
何が上手くいかないのでしょう?
For i As Integer = 0 To 1000
RichTextBox1.AppendText(i.ToString & "富士山 月見草" & vbNewLine)
Next
RichTextBox1.ScrollToCaret()
こうやって見ましたが、問題なく動作するように見えますが。
ツイート | ![]() |