.NET

【.NET】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);
}

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

以上です。

ABOUT ME
こふそ
東京でIT会社員しています。 将来の夢は誰かを幸せにすることです。仮想通貨投資に興味があります。 いろんなことを学べればいいなと思っています。