• 締切済み

テキストボックス 自動スクロールでのちらつき

お世話様です。 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が終るまで一旦描画を止めたりすればちらつかないとは思うのですが、そういったことはできるのでしょうか。 また、他にちらつかない案があれば御教授いただきたく存じます。 宜しくお願いいたします。 ※ちなみに最新テキストへの自動スクロールと行数制限は必須です

みんなの回答

回答No.1

ループの最中にテキストボックスの text プロパティに設定するのではなく、String 型か StringBuilder 型の変数にためて、ループ後テキストボックスへ設定すればどうでしょうか?

SafeGuard
質問者

補足

回答ありがとうございます。 上記を実現するとなると以下のコードになるのですが 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描画)が起こりちらついてしまいます。

関連するQ&A

専門家に質問してみよう