家・車以外で、人生で一番奮発した買い物

お世話様です。
VB.NET2003(WinXP Pro)でプログラミングしています。
標記の通り、テキストボックス(マルチライン)の描画がちらつく現象が出ています。

'表示は100行まで
If TB1.Lines.Length >= 100 Then
  TB1.Text = TB1.Text.Remove(0, TB1.Text.IndexOf(Lf)+1)
End If
TB1.AppendText(msg)

テキストボックスへの表示は上記のコードを使用しているのですが、
>TB1.Text = TB1.Text.Remove(0,TB1.Text.IndexOf(Lf)+1)
のコードで描画(カレット0)され
>TB1.AppendText(msg)
のコードで描画(テキスト長)される為、ちらついてしまいます。

AppendTextが終るまで一旦描画を止めたりすればちらつかないとは思うのですが、そういったことはできるのでしょうか。
また、他にちらつかない案があれば御教授いただきたく存じます。

宜しくお願いいたします。

※ちなみに最新テキストへの自動スクロールと行数制限は必須です

A 回答 (1件)

ループの最中にテキストボックスの text プロパティに設定するのではなく、String 型か StringBuilder 型の変

数にためて、ループ後テキストボックスへ設定すればどうでしょうか?

この回答への補足

回答ありがとうございます。

上記を実現するとなると以下のコードになるのですが

Dim buffer As String
'表示は100行まで
If TB1.Lines.Length >= 100 Then
  buffer = TB1.Text.Remove(0, TB1.Text.IndexOf(Lf)+1)
End If
TB1.Clear()
TB1.AppendText(buffer)

TB1.Clear()で同じこと(カレット0描画)が起こりちらついてしまいます。

補足日時:2006/02/08 00:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報