Windows フォーム DataGridView コントロールの列型Column Types in the Windows Forms DataGridView Control

DataGridViewコントロールがその情報を表示したり変更したり、情報を追加するユーザーを有効にするためにいくつかの列の型を使用します。The DataGridView control uses several column types to display its information and enable users to modify or add information.

バインドすると、DataGridViewを制御し、設定、AutoGenerateColumnsプロパティをtrue列は、バインドされたデータ ソースに含まれるデータ型の適切な既定の列型を使用して自動的に生成されます。When you bind a DataGridView control and set the AutoGenerateColumns property to true, columns are automatically generated using default column types appropriate for the data types contained in the bound data source.

自分で任意の列のクラスのインスタンスを作成し、によって返されるコレクションに追加することができますも、Columnsプロパティ。You can also create instances of any of the column classes yourself and add them to the collection returned by the Columns property. 非バインド列として使用するため、これらのインスタンスを作成するか、手動でバインドすることができます。You can create these instances for use as unbound columns, or you can manually bind them. 手動でバインドされた列は、別の型の列を含む 1 つの型の自動的に生成された列を置換するときなどに便利です。Manually bound columns are useful, for example, when you want to replace an automatically generated column of one type with a column of another type.

次の表に、さまざまな列クラスで使用できる、DataGridViewコントロール。The following table describes the various column classes available for use in the DataGridView control.

クラスClass 説明Description
DataGridViewTextBoxColumn テキスト ベースの値と共に使用します。Used with text-based values. 数値や文字列にバインドするときに自動的に生成されます。Generated automatically when binding to numbers and strings.
DataGridViewCheckBoxColumn 併用BooleanCheckState値。Used with Boolean and CheckState values. これらの型の値にバインドするときに自動的に生成されます。Generated automatically when binding to values of these types.
DataGridViewImageColumn イメージを表示するために使用します。Used to display images. バイト配列にバインドするときに自動的に生成されたImageオブジェクト、またはIconオブジェクト。Generated automatically when binding to byte arrays, Image objects, or Icon objects.
DataGridViewButtonColumn セルにボタンを表示するために使用します。Used to display buttons in cells. バインドするときに自動的に生成されます。Not automatically generated when binding. 通常、バインドされていない列として使用します。Typically used as unbound columns.
DataGridViewComboBoxColumn セルのドロップダウン リストを表示するために使用します。Used to display drop-down lists in cells. バインドするときに自動的に生成されます。Not automatically generated when binding. 通常、データ バインド手動でします。Typically data-bound manually.
DataGridViewLinkColumn セル内のリンクを表示するために使用します。Used to display links in cells. バインドするときに自動的に生成されます。Not automatically generated when binding. 通常、データ バインド手動でします。Typically data-bound manually.
カスタム列の型Your custom column type 列の独自のクラスを作成するには継承することによって、DataGridViewColumnクラスまたはカスタムの外観、動作、またはホストされるコントロールを提供する派生クラスのいずれか。You can create your own column class by inheriting the DataGridViewColumn class or any of its derived classes to provide custom appearance, behavior, or hosted controls. 詳細については、「方法 :それぞれの動作と外観を拡張することによって、セルと、Windows フォーム DataGridView コントロール内の列をカスタマイズします。For more information, see How to: Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their Behavior and Appearance

これらの列型は、次のセクションで詳しく説明します。These column types are described in more detail in the following sections.


DataGridViewTextBoxColumnは数値や文字列などのテキスト ベースの値で使用するための汎用の列の型です。The DataGridViewTextBoxColumn is a general-purpose column type for use with text-based values such as numbers and strings. 編集モードで、TextBoxセル値を変更するユーザーを有効にすると、アクティブなセルに、コントロールが表示されます。In editing mode, a TextBox control is displayed in the active cell, enabling users to modify the cell value.

セルの値は、表示する文字列を自動的に変換されます。Cell values are automatically converted to strings for display. 値を入力またはユーザーによって変更が自動的に適切なデータ型のセル値を作成する解析されます。Values entered or modified by the user are automatically parsed to create a cell value of the appropriate data type. これらの変換をカスタマイズするには処理することによって、CellFormattingCellParsingのイベント、DataGridViewコントロール。You can customize these conversions by handling the CellFormatting and CellParsing events of the DataGridView control.

列のセル値のデータ型がで指定された、ValueType列のプロパティ。The cell value data type of a column is specified in the ValueType property of the column.


DataGridViewCheckBoxColumn併用BooleanCheckState値。The DataGridViewCheckBoxColumn is used with Boolean and CheckState values. Boolean 値の値に応じて、2 つの状態または 3 つの状態のチェック ボックスとして表示、ThreeStateプロパティ。Boolean values display as two-state or three-state check boxes, depending on the value of the ThreeState property. 列のバインド時CheckState値、ThreeStateプロパティの値がtrue既定では。When the column is bound to CheckState values, the ThreeState property value is true by default.

通常などその他のデータ記憶域をまたは一括操作を実行するために、チェック ボックス セルの値が想定しては。Typically, check box cell values are intended either for storage, like any other data, or for performing bulk operations. 処理することができます チェック ボックス セルをクリックすると、ときにすぐに応答する場合、CellClickセルの値を更新する前に、イベントがこのイベントが発生します。If you want to respond immediately when users click a check box cell, you can handle the CellClick event, but this event occurs before the cell value is updated. 1 つのオプションが予期される値を計算するにはクリックの時に新しい値が必要な場合、現在の値に基づきます。If you need the new value at the time of the click, one option is to calculate what the expected value will be based on the current value. 別の方法がすぐに、変更をコミットして処理するには、CellValueChangedそれに応答するイベントです。Another approach is to commit the change immediately, and handle the CellValueChanged event to respond to it. セルがクリックされたときに、変更をコミットするに処理する必要があります、CurrentCellDirtyStateChangedイベント。To commit the change when the cell is clicked, you must handle the CurrentCellDirtyStateChanged event. ハンドラーで、現在のセルがチェック ボックス セルの場合を呼び出す、CommitEditメソッドを渡します、Commit値。In the handler, if the current cell is a check box cell, call the CommitEdit method and pass in the Commit value.


DataGridViewImageColumnイメージを表示するために使用します。The DataGridViewImageColumn is used to display images. イメージの列がデータ ソースから自動的に設定、バインドされていない列は、手動で設定されますまたはのハンドラーで動的に読み込まれる、CellFormattingイベント。Image columns can be populated automatically from a data source, populated manually for unbound columns, or populated dynamically in a handler for the CellFormatting event.

さまざまなイメージ形式でサポートされるすべての形式でバイト配列を image 列のデータ ソースからの自動作成の動作、Imageクラスと Microsoft® アクセスと、Northwind サンプル データベースで使用される OLE 画像形式。The automatic population of an image column from a data source works with byte arrays in a variety of image formats, including all formats supported by the Image class and the OLE Picture format used by Microsoft® Access and the Northwind sample database.

機能を提供する場合に便利ですが image 列を手動で設定をDataGridViewButtonColumn、カスタマイズされた外観を持つが、します。Populating an image column manually is useful when you want to provide the functionality of a DataGridViewButtonColumn, but with a customized appearance. 処理することができます、DataGridView.CellClick画像セル内で数回のクリックに応答するイベントです。You can handle the DataGridView.CellClick event to respond to clicks within an image cell.

ハンドラーで image 列のセルを設定、CellFormattingイベントは、イメージ以外の形式で計算される値または値のイメージを提供したい場合に便利です。Populating the cells of an image column in a handler for the CellFormatting event is useful when you want to provide images for calculated values or values in non-image formats. たとえば、文字列値を持つ「リスク」の列をなどにある可能性があります"high""middle"、および"low"アイコンとして表示します。For example, you may have a "Risk" column with string values such as "high", "middle", and "low" that you want to display as icons. または、画像のバイナリ コンテンツではなく読み込む必要があるイメージの位置を含む「イメージ」列がある可能性があります。Alternately, you may have an "Image" column that contains the locations of images that must be loaded rather than the binary content of the images.


DataGridViewButtonColumnボタンが含まれているセルの列を表示することができます。With the DataGridViewButtonColumn, you can display a column of cells that contain buttons. これは、ユーザーが注文や別のウィンドウに子レコードを表示するなど、特定のレコードに対してアクションを実行するための簡単な方法を提供したい場合に便利です。This is useful when you want to provide an easy way for your users to perform actions on particular records, such as placing an order or displaying child records in a separate window.

データ バインディング時にボタンの列は自動的に生成されません、DataGridViewコントロール。Button columns are not generated automatically when data-binding a DataGridView control. ボタン列を使用するには、手動で作成し、によって返されるコレクションに追加する必要があります、DataGridView.Columnsプロパティ。To use button columns, you must create them manually and add them to the collection returned by the DataGridView.Columns property.

処理することによりボタン セル内のユーザーのクリックに応答できる、DataGridView.CellClickイベント。You can respond to user clicks in button cells by handling the DataGridView.CellClick event.


DataGridViewComboBoxColumn、ドロップダウン リスト ボックスが含まれているセルの列を表示することができます。With the DataGridViewComboBoxColumn, you can display a column of cells that contain drop-down list boxes. これは、Northwind サンプル データベースの Products テーブルのカテゴリ列などの特定の値を含めることができますのみフィールドでのデータ入力に役立ちます。This is useful for data entry in fields that can only contain particular values, such as the Category column of the Products table in the Northwind sample database.

すべてのセルの設定と同じ方法で使用するドロップダウン リストを設定することができます、ComboBoxによって返されるコレクションを手動でいずれか、ドロップダウン リスト、Itemsプロパティ、またはデータ ソースにバインドして、 DataSourceDisplayMember、およびValueMemberプロパティ。You can populate the drop-down list used for all cells the same way you would populate a ComboBox drop-down list, either manually through the collection returned by the Items property, or by binding it to a data source through the DataSource, DisplayMember, and ValueMember properties. 詳細については、次を参照してください。 ComboBox コントロールします。For more information, see ComboBox Control.

によって使用されるデータ ソースに実際のセル値をバインドすることができます、DataGridViewコントロールを設定して、DataPropertyNameのプロパティ、System.Windows.Forms.DataGridViewComboBoxColumnします。You can bind the actual cell values to the data source used by the DataGridView control by setting the DataPropertyName property of the System.Windows.Forms.DataGridViewComboBoxColumn.

データ バインディング、コンボ ボックスの列が自動的に生成されませんが、DataGridViewコントロール。Combo box columns are not generated automatically when data-binding a DataGridView control. コンボ ボックスの列を使用するには、手動で作成およびによって返されるコレクションに追加する必要があります、Columnsプロパティ。To use combo box columns, you must create them manually and add them to the collection returned by the Columns property.


DataGridViewLinkColumnハイパーリンクを含むセルの列を表示することができます。With the DataGridViewLinkColumn, you can display a column of cells that contain hyperlinks. これは URL の値で、データ ソースまたは子レコードを含むウィンドウを開くなどの特殊な動作のボタン列の代替として役立ちます。This is useful for URL values in the data source or as an alternative to the button column for special behaviors such as opening a window with child records.

データ バインディング時に列のリンクは自動的に生成されません、DataGridViewコントロール。Link columns are not generated automatically when data-binding a DataGridView control. リンク列を使用するには、手動で作成し、によって返されるコレクションに追加する必要があります、Columnsプロパティ。To use link columns, you must create them manually and add them to the collection returned by the Columns property.

処理することによってリンク上のユーザーのクリックに応答できる、CellContentClickイベント。You can respond to user clicks on links by handling the CellContentClick event. このイベントは、異なる、CellClickCellMouseClickイベントで、ユーザーがセルの任意の場所をクリックしたときに発生します。This event is distinct from the CellClick and CellMouseClick events, which occur when a user clicks anywhere in a cell.

DataGridViewLinkColumnクラスでは、いくつかのプロパティを提供する前に、中、および後へのリンクの外観を変更するためをクリックします。The DataGridViewLinkColumn class provides several properties for modifying the appearance of links before, during, and after they are clicked.

関連項目See also