Windows フォーム DataGridView コントロールの列型
DataGridView コントロールでは、情報を表示し、ユーザーが情報を変更したり追加したりできるようにさまざまな列型を使用します。
DataGridView コントロールをバインドし、AutoGenerateColumns プロパティを true に設定すると、バインドしたデータ ソースに含まれるデータ型に見合った既定の列型を使用して、列が自動的に生成されます。
また、任意の列クラスのインスタンスを独自に作成し、Columns プロパティによって返されたコレクションに追加することもできます。 作成したこれらのインスタンスは、非バインド列として使用することも、手動でバインドすることもできます。 手動バインド列は、たとえば、自動生成されたある型の列を、別の型の列に置き換える場合に便利です。
DataGridView コントロールで使用できる列クラスの一覧を次の表に示します。
クラス |
説明 |
---|---|
テキスト ベースの値で使用されます。 数値や文字列にバインドすると自動的に生成されます。 |
|
Boolean 値と CheckState 値で使用されます。 これらの型の値にバインドすると自動的に生成されます。 |
|
イメージの表示に使用されます。 バイト配列、Image オブジェクト、または Icon オブジェクトにバインドすると自動的に生成されます。 |
|
セルにボタンを表示するために使用されます。 バインド時に自動的に生成されません。 通常、非バインド列として使用されます。 |
|
セルにドロップダウン リストを表示するために使用されます。 バインド時に自動的に生成されません。 通常、手動でデータ バインドされます。 |
|
セルにリンクを表示するために使用されます。 バインド時に自動的に生成されません。 通常、手動でデータ バインドされます。 |
|
カスタム列型 |
DataGridViewColumn クラスやその派生クラスを継承して独自の列クラスを作成すると、独自の外観や動作、またはホストされるコントロールを提供できます。 詳細については、「方法 : Windows フォーム DataGridView コントロールのセルと列を、それぞれの動作と外観を拡張してカスタマイズする」を参照してください。 |
これらの列型について、以下のセクションで詳しく説明します。
DataGridViewTextBoxColumn
DataGridViewTextBoxColumn は、数値や文字列などのテキスト ベースの値で使用する汎用の列型です。 編集モードでは、TextBox コントロールがアクティブなセルに表示されるので、ユーザーはセル値を変更できます。
セル値は、表示用の文字列に自動的に変換されます。 ユーザーが入力または変更した値は自動的に解析され、適切なデータ型のセル値が生成されます。 この変換は、DataGridView コントロールの CellFormatting イベントと CellParsing イベントを処理することでカスタマイズできます。
列のセル値のデータ型は、列の ValueType プロパティで指定されます。
DataGridViewCheckBoxColumn
DataGridViewCheckBoxColumn は、Boolean 値と CheckState 値で使用されます。 Boolean 値は、ThreeState プロパティの値に応じて、2 ステートまたは 3 ステート チェック ボックスとして表示されます。 列が CheckState 値にバインドされると、ThreeState プロパティ値は既定で true になります。
通常、チェック ボックス セル値は、他のデータと同様にストレージ用として、または一括操作を実行するために使用されます。 ユーザーがチェック ボックス セルをクリックしたときに直ちに応答する場合は、CellClick イベントを処理しますが、このイベントはセル値が更新される前に発生します。 クリック時に新しい値が必要な場合は、現在の値を基に期待される値を計算するという方法が考えられます。 また別の方法として、変更を直ちにコミットし、CellValueChanged イベントを処理してその変更に応答することも考えられます。 セルがクリックされたときに変更をコミットするには、CurrentCellDirtyStateChanged イベントを処理する必要があります。 このハンドラーでは、現在のセルがチェック ボックス セルの場合、CommitEdit メソッドを呼び出し、Commit 値を渡します。
DataGridViewImageColumn
DataGridViewImageColumn は、イメージの表示に使用されます。 イメージ列は、データ ソースから自動的に設定でき、非バインド列の場合は手動で設定できます。また CellFormatting イベントのハンドラーで動的に設定することもできます。
イメージ列をデータ ソースから自動的に設定する場合は、Image クラスでサポートされるすべての形式と、Microsoft® Access や Northwind サンプル データベースで使用される OLE ピクチャ形式を含む各種イメージ形式のバイト配列を使用できます。
イメージ列の手動設定は、DataGridViewButtonColumn の機能を独自の外観で提供する場合に役立ちます。 DataGridView.CellClick イベントを処理することにより、イメージ セル内のクリックに応答できます。
CellFormatting イベントのハンドラーでのイメージ列のセルの設定は、計算値やイメージ形式以外の値にイメージを提供する場合に役立ちます。 たとえば、"Risk" 列には、アイコンとして表示する "high"、"middle"、"low" などの文字列型の値を設定できます。 また、"Image" 列には、イメージのバイナリ コンテンツではなく、読み込む必要があるイメージの場所を格納できます。
DataGridViewButtonColumn
DataGridViewButtonColumn を使用すると、ボタンを含むセルの列を表示できます。 これは、発注を行ったり別個のウィンドウに子レコードを表示したりという操作を、ユーザーが特定のレコードで簡単に実行できるようにする場合に便利です。
ボタン列は、DataGridView コントロールをデータ バインディングしたときに自動的に生成されるわけではありません。 ボタン列を使用するには、ボタン列を手動で作成し、DataGridView.Columns プロパティによって返されたコレクションに追加する必要があります。
ボタン セル内のユーザー クリックに応答するには、DataGridView.CellClick イベントを処理します。
DataGridViewComboBoxColumn
DataGridViewComboBoxColumn を使用すると、ドロップダウン リスト ボックスを含むセルの列を表示できます。 これは、Northwind サンプル データベースの Products テーブルの Category 列など、特定の値しか入力できないフィールドでのデータ入力に便利です。
すべてのセルで共通に使用するドロップダウン リストは、ComboBox ドロップダウン リストの場合と同様に、Items プロパティによって返されたコレクションを通じて手動で設定することも、DataSource プロパティ、DisplayMember プロパティ、および ValueMember プロパティを通じてデータ ソースにバインドして設定することもできます。 詳細については、「ComboBox コントロール (Windows フォーム)」を参照してください。
DataGridView コントロールによって使用されるデータ ソースに実際のセル値をバインドするには、System.Windows.Forms.DataGridViewComboBoxColumn の DataPropertyName プロパティを設定します。
コンボ ボックス列は、DataGridView コントロールをデータ バインディングしたときに自動的に生成されるわけではありません。 コンボ ボックス列を使用するには、コンボ ボックス列を手動で作成し、Columns プロパティによって返されたコレクションに追加する必要があります。
DataGridViewLinkColumn
DataGridViewLinkColumn を使用すると、ハイパーリンクを含むセルの列を表示できます。 これは、データ ソース内の URL 値を表示するのに便利です。またボタン列の代わりに使用して、子レコードを表示するウィンドウを開くなど、特別な動作を提供することもできます。
リンク列は、DataGridView コントロールをデータ バインディングしたときに自動的に生成されるわけではありません。 リンク列を使用するには、リンク列を手動で作成し、Columns プロパティによって返されたコレクションに追加する必要があります。
ユーザーによるリンクのクリックに応答するには、CellContentClick イベントを処理します。 このイベントは、ユーザーがセル内の場所をクリックしたときに発生する CellClick イベントや CellMouseClick イベントとは別です。
DataGridViewLinkColumn クラスには、クリックの前後およびクリック時のリンクの外観を変更するプロパティが用意されています。
参照
処理手順
方法 : Windows フォーム DataGridView コントロールのセルにイメージを表示する
方法 : Windows フォーム DataGridView コントロールのイメージ列を操作する