投稿日 | : 2005/03/24(Thu) 00:51 |
投稿者 | : kuro3 |
Eメール | : |
URL | : |
タイトル | : スクロールバーが動く理由につきまして |
自己レス失礼いたします。
> 花ちゃんさんへ
>
> >どこが違うのでしょうかね。私の環境ではスクロールバーは動きません。
> そうなのですか!?、こちらでは
> RichTextBox1.Text = "あ"
> とするだけで、カレットは一番最初に動いてしまいます。
> すこし、この方向をしらべてみたいと思います。
スクロールバーの動く原因の予想がつきました。
理由はわからないのですが、下記コードを実行する際に、
RichTextBox1にフォーカスがある際は、スクロールバーが上下に動き、
その他のコントロールにフォーカスがある場合は、
一番したに固定するようです。
'前処理
'RichTextBox1.ScrollBars を 3に設定願います。
Private Sub Form_Load()
'リッチテキストに複数行をデータを用意しておく。
RichTextBox1.Text = "hjkljfajslkfjal" + vbCrLf + _
"hjkljfajslkfjal" + vbCrLf + "hjkljfajslkfjal" + vbCrLf + "hjk
ljfajslkfjal" + vbCrLf + _
〜中略〜 スクロールバーが出る程度の行数設定をお願いいたします。
"hjkljfajslkfjal" + vbCrLf
End Sub
Private Sub Timer1_Timer()
Dim n As Long
RichTextBox1.SelStart = 2147483647
'現在の文字数を取得
n = Len(RichTextBox1.Text)
'現在の文字列を現在の文字列+追加書き込みした文字数で置き換える
RichTextBox1.Text = Right$(RichTextBox1.Text & "あ" + vbCrLf, n)
RichTextBox1.SelStart = 2147483647
'現在の文字数を取得
n = Len(RichTextBox1.Text)
'現在の文字列を現在の文字列+追加書き込みした文字数で置き換える
RichTextBox1.Text = Right$(RichTextBox1.Text & "しくしくしく" + vbCrLf, n)
End Sub