- PR -

仮想モードのDataGridViewでの描画について

投稿者投稿内容
masa
大ベテラン
会議室デビュー日: 2004/10/28
投稿数: 161
投稿日時: 2006-09-15 17:51
私が作成しているのは、
レコードイメージのデータクラスのコレクションをバインドし、
各列プロパティの値を表示するというものです。
プロパティの型が列挙体の場合は名称に変換したりコンボボックスにしたりしていますので、
それなりに値のやり取りにはコードが書かれている状態です。

ですが、目に見えて「パラパラ」する感じは今のところありません。
テスト開発に使用しているPCは CPU:P4-300 MEMORY:512MB です。
私のコードももう少しスペックを落としたPCで検証する必要もありそうですね。



> Me.DataGridView1.Rows.AddCopies(0, 100)

やはりこれが気になります。
仮想モードのときは行やセルのインスタンスは
グリッド内部で作成・破棄されているように思えます。

MSDNではこのメソッドについて

このメソッドは、.NET Framework インフラストラクチャをサポートします。独自に作成したコードから直接使用するためのものではありません。

とあります。

また、グリッドが「新規行追加」と判断しているとすると、
値が表示されるかどうかに NewRowNeeded イベントも絡んでくると思います。

hei
ベテラン
会議室デビュー日: 2006/09/07
投稿数: 78
投稿日時: 2006-09-16 09:54
masaさん、たびたびのご回答ありがとうございます。
リロードしていて複数ページになっていることに気づきませんでした

AddCopiesをRowCountに変えてみましたが、若干早くなった気がしますがまだパラパラします。
(スペックはCPU:Celeron2.53 MEMORY:504MBです)

http://msdn2.microsoft.com/ja-JP/library/system.windows.forms.datagridview.virtualmode.aspx
を参考にしたのですが、
>独自に作成したコードから直接使用するためのものではありません。
と言いながら、使われていますね・・・

ただ、とりあえず実用には問題ないので、しばらくこれで行こうと思います。
(他の機能を実装しなければならないので・・・)

masaさん、Hongliangさん、ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)