FlexGridコントロールの代わりにDataGridViewコントロールを

Posted on :| コメント (1)

 このところ、VB2005をずっと使ってます。VB2005でのソフト開発をスタートさせる前に、 いろいろと調べて最後まで悩んだのがフレキシブルグリッドコントロール(FlexGrid)です。 ネット上にはこれに相当するコントロールは用意されてないと書かれていたため、 一時はサードパーティ製のグリッドコントロールも検討しました(MSの情報では、 DataGridViewを使ってくれと一言書かれていましたが)。
 しかし、DataGridViewを利用すれば、全て解決できます。

 DataGridViewは、基本的にデータベースをデータソースにして利用する事が多いコントロールです。 フレキシブルグリッドコントロールは、データをバインドせず、Excelのような表だけを利用するコントロールです。 VB6にもDataGridコントロールはありましたが、 吉田はVB6でDataGridを利用したデータベースソフトは利用してなかったため、使い方はあまり理解してませんでした。

 VS2005ではDataGridViewに統一されているため、単に出馬表やオッズを表示すると言った単純な用途には、 非常にオーバースペックなコントロールです。そのため、必要な記法を見つけられず苦労しました。防備録として、 DataGridViewをフレキシブルグリッドコントロールのように利用する方法をまとめておきます。

(1)非バインドモードで利用

  • DataGridViewには3つの動作モードがある
  • データソースを指定しない場合は、非バインドモードに設定する
  • DataSourceプロパティが未設定なら非バインドモードとして動作する(規定値)

(2)列ヘッダーは隠す

  • RowHeadersVisibleプロパティをFalseにする
  • 列ヘッダーはDataGridView特有の列で、選択されているレコードに*がつく
  • 行の追加などに利用

(3)見出し行のワードラップはOFFにする

  • 各列の項目名を表示する見出し行(VB6ではFixedに指定される行)は、 デフォルトでワードラップが有効になっている
  • ワードラップが有効のままだと、列の間隔を詰めて表示しようとすると、見出しが勝手に2行表示になる
  • ColumnHeadersDefaultCellStyleプロパティを呼び出し、 WrapModeをFalseにする

(4)指定のセルにデータを表示する

  • TextMatrixプロパティに相当するのは、Itemプロパティ
  • Item(col,row).Valueで指定の行列に文字列を追加できる

 取りあえず、ここまで出来ればFlexGridコントロールように利用できるようになります。表現力は格段にアップしているので、 ここから先はドキュメントから膨大なプロパティの用途を調べていくしかありません。それでも、まともに使いこなせれば、 VB6のフレキシブルグリッドコントロールよりも楽に表現の幅を広げることが可能です。

 

 

コメント

Leave your comment here.

投稿者 Anonymous : 2011年06月15日 02:14

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





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