【.C#】DataGridViewの描画が遅い時の対策

2019.10.29 2020.01.10 16
【.C#】DataGridViewの描画が遅い時の対策

DataGridViewの描画が遅い時の対策を紹介します。

100件程度であれば気にならないかと思いますが、

大量の行列がある状態でスクロールをすると、スクロールバーを動かすとビッビッビッみたいな感じで描画がスムーズに表示してくれない(ちらつく)んですね。

その場合の対策ですが【DoubleBuffered】というのを有効にすれば良いです。


protected void Initialize() { 

    //DataGridViewの画面ちらつきをおさえるため、DoubleBufferedを有効にする 

    // DataGirdViewのTypeを取得 
    System.Type dgvtype = typeof(DataGridView); 

    // プロパティ設定の取得 
    System.Reflection.PropertyInfo dgvPropertyInfo = dgvtype.GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); 

    // 対象のDataGridViewにtrueをセットする 
    dgvPropertyInfo.SetValue(targetDataGridview, true, null); 

}

これを実行することで、パッと表示され、スムーズにスクロールすることが確認できました。

以上です。

この記事を描いた人

WEBエンジニアです。WEBサービス制作案件、多数こなしてきました。
WordPressのカスタマイズ案件もいけます。
お仕事の依頼についてご相談に乗ります。

LINE公式アカウントを始めました!

エンジニアのお悩み相談などを配信しております!お気軽にご登録ください!

投げ銭機能を作成してみました!応援よろしくお願いします!