- - PR -
DataGridViewの表示速度の遅さ。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-08-27 18:33
プログラム内で、DataTableにデータを作成しています。
DataTableのサイズは行*1000、列*10で全てStringです。 この状態で,DataGridViewのDataSourceにDataTableを設定します。 設定ataGridView1.DataSource = DataTable; すると、この1ステップで20秒ほど時間がかかります。 あまりにも遅すぎます。 また、上記表示後、セルを一つ選んで更新すると、それだけで、また20秒くらい固まります。 どうにかならないものでしょうか? 仕様の都合上、同時にすべてのデータを表示させたいです。 |
|
投稿日時: 2008-08-27 18:34
化けていまね。
設定は、DataGridView1.DataSource = DataTable; 以上です。 |
|
投稿日時: 2008-08-27 18:43
VirtualModeプロパティ、仮想モードについて調べてみましょう。
|
|
投稿日時: 2008-08-28 00:45
CSS で
TABLE タグに table-layout:fixed を指定。 TD タグに overflow:hidden を指定。 10カラム分全てに colgroup タグで 幅を指定する際、% では無くて px で 指定。 たぶんこれだけで半分くらいに短縮できます。 CPUパワー依存なんで。 追加:表示完了まで、display:none です。 Webじゃないのか、無駄レスごめんなさい。 [ メッセージ編集済み 編集者: ぴあちゃん 編集日時 2008-08-28 00:47 ] [ メッセージ編集済み 編集者: ぴあちゃん 編集日時 2008-08-28 00:50 ] |
|
投稿日時: 2008-08-28 16:55
ありがとうございます、仮想モードで実装してみました。
何とかなりそうです。 ただ、一つ問題点が同時に発生しました。 画面に表示するのはRowCountの数で変更できますが、 表示する開始行の指定方法がわかりません。 例えば、1000件データ中、最初に500〜表示したい場合などです。 RowCount = 100 とすると、0件目から100件表示されますが、 500件〜600件を表示するのはどうすればよいのでしょうか? |
|
投稿日時: 2008-08-28 18:20
DataGridView.FirstDisplayedScrollingRowIndexプロパティに
表示させたい行のRowIndexを設定する。 |
1