Spaltentypen im DataGridView-Steuerelement in Windows FormsColumn Types in the Windows Forms DataGridView Control

Die DataGridView Steuerelement verwendet mehrere Spaltentypen, die Informationen anzeigen und Benutzern ermöglichen, ändern oder Hinzufügen von Informationen.The DataGridView control uses several column types to display its information and enable users to modify or add information.

Beim Binden einer DataGridView steuern und Festlegen der AutoGenerateColumns Eigenschaft true, Spalten werden automatisch generiert, mit Standardspaltentypen für die Datentypen, die in der gebundenen Datenquelle enthalten sind.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.

Sie können auch Instanzen aller Spaltenklassen selbst zu erstellen und Hinzufügen von zurückgegebene Auflistung der Columns Eigenschaft.You can also create instances of any of the column classes yourself and add them to the collection returned by the Columns property. Sie können diese Instanzen für die Verwendung als ungebundene Spalten erstellen, oder Sie können diese manuell binden.You can create these instances for use as unbound columns, or you can manually bind them. Manuell gebundene Spalten sind nützlich, z. B. Wenn Sie eine automatisch generierte Spalte eines bestimmten Typs mit einer Spalte eines anderen Typs ersetzen möchten.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.

Die folgende Tabelle beschreibt die verschiedenen Spaltenklassen, die verfügbar sind, für die Verwendung in der DataGridView Steuerelement.The following table describes the various column classes available for use in the DataGridView control.

KlasseClass BeschreibungDescription
DataGridViewTextBoxColumn Mit dem textbasierten verwendet.Used with text-based values. Beim Binden an Zahlen und Zeichenfolgen automatisch generiert.Generated automatically when binding to numbers and strings.
DataGridViewCheckBoxColumn Mit verwendet Boolean und CheckState Werte.Used with Boolean and CheckState values. Beim Binden an die Werte der folgenden Typen automatisch generiert.Generated automatically when binding to values of these types.
DataGridViewImageColumn Zum Anzeigen von Bildern verwendet.Used to display images. Automatisch generiert, wenn die Bindung in Bytearrays Image Objekte oder Icon Objekte.Generated automatically when binding to byte arrays, Image objects, or Icon objects.
DataGridViewButtonColumn Verwendet in Zellen angezeigt werden sollen.Used to display buttons in cells. Beim Binden nicht automatisch generiert.Not automatically generated when binding. In der Regel verwendet als ungebundene Spalten.Typically used as unbound columns.
DataGridViewComboBoxColumn Verwendet, um die Dropdownlisten in Zellen angezeigt werden.Used to display drop-down lists in cells. Beim Binden nicht automatisch generiert.Not automatically generated when binding. In der Regel datengebundenen Sie von manuell.Typically data-bound manually.
DataGridViewLinkColumn Verwendet, um Links in Zellen angezeigt werden.Used to display links in cells. Beim Binden nicht automatisch generiert.Not automatically generated when binding. In der Regel datengebundenen Sie von manuell.Typically data-bound manually.
Ihr benutzerdefinierter SpaltentypYour custom column type Sie können eine eigene Spaltenklasse erstellen, durch Vererbung der DataGridViewColumn Klasse oder eines seiner abgeleiteten Klassen, die benutzerdefinierte Darstellung, die Verhalten oder die gehosteten Steuerelemente bereitstellen.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. Weitere Informationen finden Sie unter Vorgehensweise: Anpassen von Zellen und Spalten im DataGridView-Steuerelement in Windows Forms durch Erweitern Aussehens und VerhaltensFor more information, see How to: Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their Behavior and Appearance

Diese Spaltentypen werden in den folgenden Abschnitten ausführlicher beschrieben.These column types are described in more detail in the following sections.

DataGridViewTextBoxColumnDataGridViewTextBoxColumn

Die DataGridViewTextBoxColumn ist ein allgemeines Spaltentyp für die Verwendung mit einem textbasierten-Werten, z. B. Zahlen und Zeichenfolgen.The DataGridViewTextBoxColumn is a general-purpose column type for use with text-based values such as numbers and strings. Im Bearbeitungsmodus eine TextBox in der aktiven Zelle,-Steuerelements angezeigt wird, ermöglicht den Benutzern auf den Zellenwert zu ändern.In editing mode, a TextBox control is displayed in the active cell, enabling users to modify the cell value.

Werte der Zellen werden automatisch in Zeichenfolgen für die Anzeige konvertiert.Cell values are automatically converted to strings for display. Werte eingegeben haben, oder vom Benutzer geändert werden automatisch analysiert, um einen Zellenwert des entsprechenden Datentyps zu erstellen.Values entered or modified by the user are automatically parsed to create a cell value of the appropriate data type. Sie können diese Konvertierungen anpassen, indem die Behandlung der CellFormatting und CellParsing Ereignisse der DataGridView Steuerelement.You can customize these conversions by handling the CellFormatting and CellParsing events of the DataGridView control.

Der Zellwerttyp Daten einer Spalte wird angegeben, der ValueType -Eigenschaft der Spalte.The cell value data type of a column is specified in the ValueType property of the column.

DataGridViewCheckBoxColumnDataGridViewCheckBoxColumn

Die DataGridViewCheckBoxColumn wird zusammen mit Boolean und CheckState Werte.The DataGridViewCheckBoxColumn is used with Boolean and CheckState values. Boolean Werte anzeigen als zwei oder drei-Status-Kontrollkästchen, abhängig vom Wert der ThreeState Eigenschaft.Boolean values display as two-state or three-state check boxes, depending on the value of the ThreeState property. Wenn die Spalte gebunden ist, um CheckState Werte, die ThreeState Eigenschaftswert ist true standardmäßig.When the column is bound to CheckState values, the ThreeState property value is true by default.

In der Regel dienen Kontrollkästchenzellenwerte für Speicher, wie alle anderen Daten oder für Massenvorgänge.Typically, check box cell values are intended either for storage, like any other data, or for performing bulk operations. Wenn Sie reagieren, sofort bei der Benutzer auf eine Zelle Kontrollkästchen klicken, können Sie behandeln möchten die CellClick Ereignis, aber dieses Ereignis tritt auf, bevor der Wert der Zelle aktualisiert wird.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. Wenn Sie den neuen Wert zum Zeitpunkt des Klicks benötigen, wird eine Möglichkeit besteht, zu berechnen, was mit dem erwarteten Wert werden basierend auf den aktuellen Wert.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. Ein anderer Ansatz ist die Änderung sofort einen Commit auszuführen, und behandeln die CellValueChanged Ereignis, um darauf zu reagieren.Another approach is to commit the change immediately, and handle the CellValueChanged event to respond to it. Um die Änderung zu übernehmen, wenn die Zelle geklickt wird, müssen Sie behandeln die CurrentCellDirtyStateChanged Ereignis.To commit the change when the cell is clicked, you must handle the CurrentCellDirtyStateChanged event. Wenn die aktuelle Zelle ein Kontrollkästchen ist, rufen Sie in den Handler auf, die CommitEdit -Methode und übergeben Sie die Commit Wert.In the handler, if the current cell is a check box cell, call the CommitEdit method and pass in the Commit value.

DataGridViewImageColumnDataGridViewImageColumn

Die DataGridViewImageColumn wird verwendet, um Bilder anzuzeigen.The DataGridViewImageColumn is used to display images. Image-Spalten können aus einer Datenquelle automatisch aufgefüllt, manuell für ungebundene Spalten aufgefüllt oder dynamisch aufgefüllt werden, in einem Handler für die CellFormatting Ereignis.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.

Die automatische Auffüllung des eine Image-Spalte aus einer Datenquelle mit Byte-Arrays in einer Vielzahl von Bildformate, alle von unterstützten Formate wie funktioniert die Image -Klasse und das OLE-Bild-Format, die von Microsoft® Access und der Beispieldatenbank Northwind verwendet.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.

Eine Image-Spalte manuell zu füllen ist nützlich, wenn Sie die Funktionalität bereitstellen möchten eine DataGridViewButtonColumn, aber das angepasste aussehen.Populating an image column manually is useful when you want to provide the functionality of a DataGridViewButtonColumn, but with a customized appearance. Sie können behandeln die DataGridView.CellClick Ereignis, um auf Klicks in eine Bildzelle reagieren.You can handle the DataGridView.CellClick event to respond to clicks within an image cell.

Füllen die Zellen der Image-Spalte in einen Handler für die CellFormatting Ereignis ist hilfreich, wenn Sie Abbilder für berechnete Werte oder Werte in nicht-Bildformate bereitstellen möchten.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. Angenommen, Sie möglicherweise eine Spalte "Risiko" mit Zeichenfolgenwerten wie z. B. "high", "middle", und "low" , die als Symbole angezeigt werden soll.For example, you may have a "Risk" column with string values such as "high", "middle", and "low" that you want to display as icons. Klicken Sie alternativ müssen Sie eine Spalte "Image" möglicherweise, die die Positionen der Bilder enthält, die statt der binären Inhalt der Bilder geladen werden muss.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.

DataGridViewButtonColumnDataGridViewButtonColumn

Mit der DataGridViewButtonColumn, können Sie eine Spalte von Zellen, die Schaltflächen anzeigen.With the DataGridViewButtonColumn, you can display a column of cells that contain buttons. Dies ist nützlich, wenn Sie eine einfache Möglichkeit für Ihre Benutzer zum Ausführen von Aktionen für bestimmte Datensätze, z. B. Bestellung oder Anzeigen von untergeordneten Datensätzen in einem separaten Fenster bereitstellen möchten.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.

Schaltflächenspalten werden nicht automatisch generiert, wenn die Datenbindung einer DataGridView Steuerelement.Button columns are not generated automatically when data-binding a DataGridView control. Um Schaltflächenspalten verwenden zu können, müssen sie manuell erstellen und Hinzufügen von zurückgegebene Auflistung der DataGridView.Columns Eigenschaft.To use button columns, you must create them manually and add them to the collection returned by the DataGridView.Columns property.

Sie können von Benutzern in Schaltflächenzellen reagieren, durch Behandeln der DataGridView.CellClick Ereignis.You can respond to user clicks in button cells by handling the DataGridView.CellClick event.

DataGridViewComboBoxColumnDataGridViewComboBoxColumn

Mit der DataGridViewComboBoxColumn, Sie können anzeigen, eine Spalte von Zellen, die Dropdown-Listenfelder enthalten.With the DataGridViewComboBoxColumn, you can display a column of cells that contain drop-down list boxes. Dies ist nützlich für die Dateneingabe in Feldern, die nur bestimmte Werte, z. B. der Kategoriespalte der Products-Tabelle in der Northwind-Beispieldatenbank enthalten kann.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.

Sie können die Dropdown-Liste verwendet für alle Zellen die gleiche Weise, die Sie füllen würde Auffüllen eine ComboBox Dropdown Liste entweder manuell über die zurückgegebene Auflistung der Items -Eigenschaft, oder durch deren Bindung an eine Datenquelle über die DataSource, DisplayMember, und ValueMember Eigenschaften.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. Weitere Informationen finden Sie unter ComboBox-Steuerelement.For more information, see ComboBox Control.

Sie können die Werte des tatsächlichen Zellenwertes binden, mit der Datenquelle ein, die die DataGridView Steuerelement durch Festlegen der DataPropertyName Eigenschaft der 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.

Kombinationsfeld-Box-Spalten werden nicht automatisch generiert, wenn die Datenbindung einer DataGridView Steuerelement.Combo box columns are not generated automatically when data-binding a DataGridView control. Um Combo Box Spalten verwenden, müssen sie manuell erstellen und Hinzufügen von zurückgegebene Auflistung der Columns Eigenschaft.To use combo box columns, you must create them manually and add them to the collection returned by the Columns property.

DataGridViewLinkColumnDataGridViewLinkColumn

Mit der DataGridViewLinkColumn, Sie können anzeigen, eine Spalte von Zellen, die Links enthalten.With the DataGridViewLinkColumn, you can display a column of cells that contain hyperlinks. Dies ist nützlich für URL-Werte in der Datenquelle oder alternativ auf die Schaltfläche "-Spalte für bestimmte Verhalten, z. B. Öffnen eines Fensters mit untergeordneten Datensätzen.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.

Linkspalten werden nicht automatisch generiert, wenn die Datenbindung einer DataGridView Steuerelement.Link columns are not generated automatically when data-binding a DataGridView control. Um Linkspalten verwenden, müssen sie manuell erstellen und Hinzufügen von zurückgegebene Auflistung der Columns Eigenschaft.To use link columns, you must create them manually and add them to the collection returned by the Columns property.

Sie können auf Klicks auf Links reagieren, durch Behandeln der CellContentClick Ereignis.You can respond to user clicks on links by handling the CellContentClick event. Dieses Ereignis unterscheidet sich von der CellClick und CellMouseClick Ereignisse, die auftreten, wenn ein Benutzer eine beliebige Stelle in einer Zelle klickt.This event is distinct from the CellClick and CellMouseClick events, which occur when a user clicks anywhere in a cell.

Die DataGridViewLinkColumn Klasse stellt mehrere Eigenschaften bereit, zum Ändern der Darstellung von Links vor, während und nach dem geklickt wird.The DataGridViewLinkColumn class provides several properties for modifying the appearance of links before, during, and after they are clicked.

Siehe auchSee also