DataGridView コントロールのアーキテクチャ (Windows フォーム)
DataGridView コントロールとその関連クラスは、表形式データを表示および編集するための柔軟で拡張可能なシステムとして設計されています。 これらのクラスはすべて、System.Windows.Forms 名前空間に含まれていて、名前にはすべて "DataGridView" というプレフィックスが付けられています。
アーキテクチャの要素
主な DataGridView コンパニオン クラスは、DataGridViewElement から派生されます。 次のオブジェクト モデルで示しているのは、DataGridViewElement 継承階層です。
DataGridViewElement クラスでは親である DataGridView コントロールへの参照が提供され、DataGridViewElementStates 列挙型からの値の組み合わせを表す値を保持する State プロパティが用意されています。
以下のセクションでは、DataGridView コンパニオン クラスについて詳しく説明します。
DataGridViewElementStates
DataGridViewElementStates 列挙体には次の値が含まれます。
この列挙型の値はビットごとの論理演算子と組み合わせることができます。したがって、State プロパティで一度に複数の状態を表すことができます。 たとえば、DataGridViewElement を同時に Frozen、Selected、Visible とすることができます。
セルとバンド
DataGridView コントロールは、セルとバンドという 2 種類の基本的なオブジェクトで構成されています。 すべてのセルは、DataGridViewCell 基底クラスから派生されます。 2 種類のバンド (DataGridViewColumn と DataGridViewRow) はどちらも、DataGridViewBand 基底クラスから派生されます。
DataGridView コントロールはいくつかのクラスと相互運用されますが、最もよく対象となるのは DataGridViewCell、DataGridViewColumn、および DataGridViewRow です。
DataGridViewCell
セルは、DataGridView のやりとりの基本単位です。 表示はセルの中央に配置され、多くの場合、データ入力はセルを通じて実行されます。 セルにアクセスするには、DataGridViewRow クラスの Cells コレクションを使用し、選択したセルにアクセスするには DataGridView コントロールの SelectedCells コレクションを使用します。 次のオブジェクト モデルでは、この使用方法と DataGridViewCell 継承階層を示します。
DataGridViewCell 型は抽象基底クラスであり、すべてのセルの派生元となります。 DataGridViewCell とその派生型は Windows フォーム コントロールではありませんが、一部はホスト Windows フォーム コントロールです。 セルによってサポートされる編集機能はいずれも、通常、ホストされたコントロールによって処理されます。
DataGridViewCell オブジェクトは、Windows フォーム コントロールのように独自の外観および描画機能を制御するようになっていません。 代わりに、DataGridViewCell オブジェクトの外観は、DataGridView によって制御されます。 DataGridView コントロールのプロパティおよびイベントとやりとりすることにより、セルの外観と動作に大きな影響を与えることができます。 DataGridView コントロールの機能を超えるカスタマイズについて特別な要件がある場合は、DataGridViewCell またはその子クラスの 1 つから派生させた独自のクラスを実装することができます。
次の一覧に DataGridViewCell から派生させたクラスを示します。
カスタムのセル型
DataGridViewColumn
DataGridView コントロールにアタッチされたデータ ストアのスキーマは、DataGridView コントロールの列で表現されます。 DataGridView コントロールの列にアクセスするには、Columns コレクションを使用します。 選択した列にアクセスするには、SelectedColumns コレクションを使用します。 次のオブジェクト モデルでは、この使用方法と DataGridViewColumn 継承階層を示します。
主なセル型の中には、対応する列型を持つものがあります。 これらは、DataGridViewColumn 基底クラスから派生されています。
次の一覧に DataGridViewColumn から派生させたクラスを示します。
カスタム列型
DataGridView 編集コントロール
高度な編集機能をサポートするセルでは、通常、Windows フォーム コントロールから派生させた、ホストされるコントロールが使用されます。 これらのコントロールによって、IDataGridViewEditingControl インターフェイスも実装されます。 次のオブジェクト モデルは、これらのコントロールの使用方法を示しています。
DataGridView コントロールには、次の編集コントロールが用意されています。
独自の編集コントロールを作成する方法については、「方法: Windows フォーム DataGridView Cells でコントロールをホストする」を参照してください。
次の表に、セルの型と列の型と編集コントロールの間の関係を示します。
DataGridViewRow
DataGridViewRow クラスを使用すると、DataGridView コントロールがアタッチされているデータ ストアからのレコードのデータ フィールドを表示できます。 DataGridView コントロールの行にアクセスするには、Rows コレクションを使用します。 選択した行にアクセスするには、SelectedRows コレクションを使用します。 次のオブジェクト モデルでは、この使用方法と DataGridViewRow 継承階層を示します。
独自の型を DataGridViewRow から派生させることもできますが、通常、それは必要ありません。 DataGridView コントロールには、その DataGridViewRow オブジェクトの動作をカスタマイズするための行関連のイベントとプロパティがいくつかあります。
DataGridView コントロールの AllowUserToAddRows プロパティを有効にすると、新しい行を追加するための特殊な行が最後の行として表示されます。 この行は、Rows コレクションに含まれていますが、注意が必要な特別な機能を備えています。 詳細については、「Windows フォーム DataGridView コントロールにおける新規レコード行の使用」を参照してください。
関連項目
.NET Desktop feedback