VB2005とVB6のグリッドコントロールの違い

Posted on :| コメント (1)

 再三ブログで記事にしているように、吉田は今年からVB2005でソフト開発を行っています。 すべてをVB2005に切り替えたわけではなく、シンドロームの新バージョンのみです。
 VB2005では、これまで利用してきたフレキシブルグリッドコントロールがなくなり、 DataGridViewコントロールに置き換えられています。 DataGridViewは表現力の点だけでも長足の進歩を遂げていますが、いろいろ仕様的な違いがあり、その都度つまづいています。

 細かい違いよりも、吉田が最も悩んでいるのは表示速度の問題です。VB6のフレキシブルグリッドコントロールでは、 表示速度向上のために描画中はVisibleプロパティをFalseに設定するのが定石でした。

 しかし、VB2005ではVisible=Falseに指定しても、速度は変わりません。 グリッドコントロールは競馬ソフトの要と言うべきコントロールで、ここに出馬表やオッズを表示するため、 常に様々なデータを更新する必要があります。

 グリッド描画中にVisibleをFalseにすると速度が向上する理由は、 セルにデータをセットする度にWindowsがセルの再描画をかけるためです。これが大きなボトルネックとなっていたので、 全データを表に流し込んだ後に一気に表示する方が高速化が図れます。

 VB2005で同様のテクニックを利用すると、描画速度が上がらないばかりか、データセット中の時間だけコントロールが消えるため、 かえって遅く感じられたり、画面がちらついたりします。 体感速度的にはコントロールを常に表示させたままDataGridViewにデータをセットした方が、高速に感じられます。

 内部の実装が変わっているせいだと思いますが、VB6の高速化テクニックは適用しない方が良さそうです。

コメント

アクセスの帳票フォームのようにも使えるグリッドコントロールです。
まだ、ベータ版ですがもしよろしければ試してみてください。

投稿者 G1Systems Inc. : 2008年05月20日 04:01

コメントフォームに記入し投稿してください





Search
最近の記事
カテゴリー
過去の記事
Comments
TrackBacks
Feed
Powered by