何度も苦しんできた、.net の DataGridViewのパフォーマンスですが、
ここで一度パフォーマンスを上げるために(下げないために)必要なことを記録しておきます。
プロパティ
ColumnHeaderHeightSIzeMode
RowHeadersWidthSizeMode
の二つは、「絶対にAuto」にしてはいけません。
この二つでパフォーマンスは激落ちです。3秒→ 5分くらい。
後は、DataSource にDataTableを突っ込むときは、
一度Visible = False にしたほうが速いような気がします。
Visible = False で処理できる部分は、なるべくDataGridView.Visible = False で
処理を行います。
列幅、行高さの調整は、うまくいかなければ、自前で作ったほうがいいです。
DataGridViewのプロパティやメソッドは、visible との兼ね合い、別のプロパティ変更の順番とか、結構色々なところに依存していて、うまくいかないことが多いです。
ちゃんとしてあげれば、
3000行を超えるデータも1秒くらいで表示できたりします。