C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 113 を表示中)
■66761 / )  Re[1]: DataGridViewの2回目が遅いのはなぜ? 【初心者】
□投稿者/ 魔界の仮面弁士 (225回)-(2013/05/22(Wed) 21:06:42)
No66759 (とんちき さん) に返信
> DataGridViewを使用して1000行の表を作成しているのですが、
データバインドを利用しましょう。


> For 行 = 0 To データ件数 Step 1
速度は別として、複数回実行時に、本当に期待する結果になっていますか?

RowCount を修正しているわけでも、.Rows.Clear() しているわけでもないので、
2回目は 1001〜2000行、3回目は2001〜3000行目を追加することになりますが、
現状のコードだと、データは常に先頭 1000行にしか書き込まれていません。


> 2回目に実行するとなぜかすごく遅いです。
今回は、「.AutoSizeColumnsMode = AllCells」が原因でしょう。
もしもデザイン時に AllCells 指定してから実行すれば、1 回目から遅くなるはずです。

同様に、RowHeadersWidthSizeMode も遅くなる要因となります。


> DataGridViewの性質(仕様)なのか,コードの記述が悪いのかわかりません。

(案1)AutoSizeColumnsMode プロパティを AllCells に設定する代わりに、
 AutoResizeColumns(AllCells) メソッドの呼び出しで代用する。

(案2)データを追加している最中は None にしておき、
 データを書き込み終わってから、改めて AllCells に戻す。
返信 編集キー/


管理者用

- Child Tree -