.Net FrameworkではDBから取得したデータはDataTableに格納し、
それをコントロールにバインド(DataSourceを使用)すれば表示されるので
非常に便利。
DataGridViewのような表形式コントロールはSQL クエリの情報を
そのまま表示できるので、一覧表を作成する時は重宝する。
ところがこの際、速度の問題が出る。
おおよそ2000件を過ぎたくらいからバインド処理に時間がかかり
一呼吸も二呼吸もおいてから表示されるようになる。
最初は表示のために内部でコントロールを生成するなどで
時間がかかるんだろうなと思っていたけど、
実は余分な処理までされていたことが判明。
データをバインドする際、データの長さ(文字列のLenght)を取得して
自動でカラムの幅を設定されているのだ。
なので、
DataGridViewの場合、AutoSizeToAllHeadersを無効にする
FlexGridの場合はAutoResizeを無効にする
これで速度は幾らか向上する。
サイズを厳密に指定する際は、バインド後に
自分で行う方が早い。
