投稿日 | : 2005/03/23(Wed) 00:24 |
投稿者 | : kuro3 |
Eメール | : |
URL | : |
タイトル | : Re^5: チラツキ防止(修正分) |
返信ありがとうございます。
ためしてみたのですが、残念ことにNGでした。
まず、この手法ですと実際にはリターンコードがまじり改行が生じると、
ちらついてしまいました。
また、説明不足で申し訳ないのですが、一行の文字数はそれなりに違いまして、
文字での管理はあまり望ましくないのいった状態です・・・。
ただ、確かに文字での処理をしたほうが早いという印象を受けました。
ちらつきに関しましては、実際にはスクロールバーがすごい勢いで動きまして、
画面も流れている感じにならないのです。
具体的には、下記コードを実行いただけましたら体感いただけると思います。
もし、改善策が浮かびましたもう暫しお付き合いいただけたらありがたいです。
'前処理
'RichTextBox1.ScrollBars を 3に設定願います。
Private Sub Form_Load()
'リッチテキストに複数行をデータを用意しておく。
RichTextBox1.Text = "hjkljfajslkfjal" + vbCrLf + _
"hjkljfajslkfjal" + vbCrLf + "hjkljfajslkfjal" + vbCrLf + "hjkljfajslkfjal" + 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