トップ «前の日記(2006-08-31) 最新 次の日記(2006-09-03)» 編集

Ussy Diary


2006-09-01

[.NET]ListView のちらつきを防止

.NET Framework 2.0 に限った話なのかもしれません。

ListView コントロールを使用した場合に、リアルタイムに行を追加する場合ちらつきが発生しました。少し調べたところ追加、更新、削除時の前後に BeginUpdate メソッドと EndUpdate メソッドをそれぞれ一回呼び出せばいいみたいなのですが全く効果がありませんでした。

さらに調べてみたところ ListView クラスを継承したクラスを作成するといいようです。というか ListView は Double Buffering が有効でないのね。。。

public partial class DoubleBufferedListView : ListView
{
    public DoubleBuffredListView()
    {
        InitializeComponent();

        this.DoubleBuffered = true;
     }
}

ただ書いてあるとおり Windows XP でなければ有効になりませんでした。