.NET の DataGridViewが遅すぎる。

何度も苦しんできた、.net の DataGridViewのパフォーマンスですが、

ここで一度パフォーマンスを上げるために(下げないために)必要なことを記録しておきます。

 

プロパティ

 ColumnHeaderHeightSIzeMode

    RowHeadersWidthSizeMode

 

の二つは、「絶対にAuto」にしてはいけません。

この二つでパフォーマンスは激落ちです。3秒→ 5分くらい。

 

後は、DataSource にDataTableを突っ込むときは、

一度Visible = False にしたほうが速いような気がします。

Visible = False で処理できる部分は、なるべくDataGridView.Visible = False で

処理を行います。

 

列幅、行高さの調整は、うまくいかなければ、自前で作ったほうがいいです。

DataGridViewのプロパティやメソッドは、visible との兼ね合い、別のプロパティ変更の順番とか、結構色々なところに依存していて、うまくいかないことが多いです。

 

ちゃんとしてあげれば、

3000行を超えるデータも1秒くらいで表示できたりします。