業務アプリケーション構築において最も頻繁に利用され、開発者が実装に最も労力を要するであろうグリッドを徹底解説。
powered by Insider.NET
.NETで(Visual Studio 2005を使って)Windowsアプリケーションを作成する場合、そのユーザー・インターフェイスの構築には、あらかじめ用意されたコントロール(あるいはコンポーネント)部品をフォームにドラッグ&ドロップしながら行うのが一般的であり、これはVisual Studioの大きな特徴でもある。そのようなコントロール部品は、.NETでは標準あるいはサードパーティにより多数用意されている。
そしてそのようなコントロール部品の中でも、特に業務アプリケーション構築において重要となるのが、
グリッド・コントロール
である。いうまでもなくグリッド・コントロールは、データを表形式で表示し、セル内の値を編集したり、行追加によりデータを追加したりするためのものである。データベース上のレコードの参照/追加/削除/更新処理が主となる業務アプリケーションでは、グリッド・コントロールの使い勝手が大きなポイントとなるといえるだろう。
このようにグリッド・コントロールが業務アプリケーションで果たす役割は大きいが、それに比例してグリッド・コントロールに要求される機能も多い。実際.NETに標準で用意されているグリッド・コントロール(具体的にはDataGridViewコントロール)は、数あるコントロールの中でも最も複雑で規模の大きいものになっている。そのためこれを使いこなし、適切な実装を行うには(行えるようになるには)少なからずの工数が必要となる。
本連載では、この最も頻繁に利用され、開発者が実装に最も労力を要するであろうグリッド・コントロールを使いこなすために、グリッド・コントロールについて“研究”しながら、その基礎から応用までを解説していく。まずは.NET標準のグリッド・コントロールについて見ていくが、連載後半ではサードパーティ製のグリッド製品なども取り上げる予定だ。
なお.NETでグリッド・コントロールといえば、Windowsアプリケーション用とWebアプリケーション(ASP.NET)用のものがあるが、本連載ではWindowsアプリケーションのみにターゲットを絞って解説する。
.NET標準のグリッド・コントロールとしては、.NET Framework 1.x(Visual Studio .NETおよびVisual Studio .NET 2003)まではDataGridコントロールが使われていたが、.NET Framework 2.0(Visual Studio 2005)ではまったく新しく、
DataGridViewコントロール(以下「DGVコントロール」と略す)
が追加された。
2.0でもDataGridコントロールは利用可能だが、これは下位互換性のために残されているだけだ。このことはDGVコントロールがDataGridコントロールから根本的に大きく変わっていることを意味している。
2つのグリッド・コントロールの主な違いについては、MSDNの「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」でまとめられている。その記述のうち、まず注目すべきは次の部分だ。
「DataGridView コントロールはまったく新しいアーキテクチャを採用しているため、DataGridView コントロールで DataGrid のカスタマイズされた機能を使用できるようにする簡単な変換パスはありません。」
せっかくこれまで多くの開発者がDataGridコントロールについて多くのノウハウやテクニックを蓄積してきたというのに、それらのほとんどを捨ててしまわなければならないのだ! 今後はこのような互換性のない置き換えは控えてほしいものである。
さて気を取り直して、DataGridコントロールよりも簡単に拡張やカスタマイズが行えるというDGVコントロールに、新たな気持ちで取り組んでいこう。
まずはDGVコントロールの各名称を確認しておこう。以下の画面はDGVコントロールを配置したWindowsアプリケーションの実装例である。
基本的にDGVコントロールでは表形式のデータを表示する。つまり、各行が1つの(1組の)データを表し(この画面では全部で5行のデータを表示している)、各列には各データ内の同じ種類の項目が並ぶ(例えばタイトル表示用の列ならば各データのタイトル項目のみ)。よってデータが増えていけば、グリッドは縦方向にどんどん長くなっていくことになる。
実際のデータは各「セル」内に表示される(図中(1))。セルはキーボードやマウスにより選択でき、選択されているセルには色が付けられる。複数個のセルを選択することもできる。
先頭の行は「行ヘッダ」と呼ばれる行(図中(2))であり、ここには各列の見出しを表示する。行ヘッダ内の各列部分をクリックすれば、その列の項目でデータを昇順/逆順に並べ替えるようにすることもできる。同様に、最も左端の列は「列ヘッダ」と呼ばれる列(図中(3))である。列ヘッダ部分をクリックすることにより行単位での選択ができる。
DGVコントロールでは単なるテキストや数値以外のデータもセルで表示可能だ。上記の画面では、全部で6種類の列を使用しているが(図中(4)〜(9))、これがDGVコントロールに標準で備わっているすべての種類の列だ。以前のDataGridコントロールに比べると、イメージ列やボタン列などが増えている。これら以外の特殊な列(例えば日付を選択するためのDataTimePickerコントロールを表示するような列)を使いたければ、新しい列の種類を自作して表示させることもできる。
Copyright© Digital Advantage Corp. All Rights Reserved.