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

解決


VB初心者  2007-01-09 20:28:03  No: 134789

VisualBasic2005を使って通信ソフトを作っています。
その際にログ表示用にRichTextBoxを使用しているのですが、
データを受信するたびにコントロールが一番上に戻ってしまいます。
コントロールを常に一番下に持っていく方法はないのでしょうか?

自分なりに調べてみたのですが、どうしても上手く作動せず
皆様のお力をお借りしたいと思い、投稿させていただきました。
宜しくお願いします。


VBレスキュー(花ちゃん)  2007-01-09 22:13:55  No: 134790

最終行に追加書き込みするのではだめですか?

又、それだけでは問題が解決しないように思います。
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


VB初心者  2007-01-10 02:31:33  No: 134791

非常に迅速なお答えありがとうございます。
データ受信時にリッチテキストボックスにフォーカスがある場合、
下記の文を追加することで問題が解決しました。

RichTextBox1.SelStart = 2147483647

データ受信時にリッチテキストボックスにフォーカスがない場合、
スクロールバーが上手く動かないのでもう少し考えてみようと思います。
何かアドバイスがありましたら宜しくお願いします。


VB初心者  2007-01-10 19:24:25  No: 134792

一応、解決しました。
これで解決にチェックを入れていいのかわからないのですが…

時間に猶予が無かったのでリッチテキストボックスの使用をやめて
テキストボックスを使用しました。
理由はわからないのですが、
テキストボックスの場合は、最終行に追加書き込みをすることで
スクロールが自動的に一番下に行きました。

花ちゃんさん、回答してくださって有難うございました。


我龍院  2007-01-10 22:34:52  No: 134793

何が上手くいかないのでしょう?
For i As Integer = 0 To 1000
     RichTextBox1.AppendText(i.ToString & "富士山 月見草" & vbNewLine)
Next
RichTextBox1.ScrollToCaret()
こうやって見ましたが、問題なく動作するように見えますが。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加