スポンサードリンク

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

2019.10.29 2019.10.26 30
【.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); 

}

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

以上です。