Spaltentypen im DataGridView-Steuerelement in Windows Forms
Das DataGridView-Steuerelement verwendet verschiedene Spaltentypen, um deren Inhalt anzuzeigen und es Benutzern zu ermöglichen, Informationen zu ändern oder hinzuzufügen.
Wenn Sie ein DataGridView-Steuerelement binden und die AutoGenerateColumns-Eigenschaft auf true festlegen, werden Spalten automatisch anhand von standardmäßigen Spaltentypen generiert, die für die in der gebundenen Datenquelle enthaltenen Datentypen geeignet sind.
Sie können auch selbst Instanzen der Spaltenklassen erstellen und sie der von der Columns-Eigenschaft zurückgegebenen Auflistung hinzufügen. Sie können diese Instanzen zur Verwendung als ungebundene Spalten erstellen oder sie manuell binden. Manuell gebundene Spalten sind beispielsweise hilfreich, wenn Sie eine automatisch generierte Spalte eines bestimmten Typs durch eine Spalte eines anderen Typs ersetzen möchten.
In der folgenden Tabelle werden die verschiedenen Spaltenklassen beschrieben, die im DataGridView-Steuerelement verfügbar sind.
Klasse |
Beschreibung |
---|---|
Wird mit textbasierten Werten verwendet. Wird beim Binden an Zahlen und Zeichenfolgen automatisch generiert. |
|
Wird mit Boolean-Werten und CheckState-Werten verwendet. Wird beim Binden an Werte dieser Typen automatisch generiert. |
|
Wird zur Anzeige von Bildern verwendet. Wird beim Binden an Bytearrays, Image-Objekte oder Icon-Objekte automatisch generiert. |
|
Wird zur Anzeige von Schaltflächen in Zellen verwendet. Wird beim Binden nicht automatisch generiert. Wird normalerweise als ungebundene Spalte verwendet. |
|
Wird zur Anzeige von Dropdownlisten in Zellen verwendet. Wird beim Binden nicht automatisch generiert. Wird normalerweise manuell an Daten gebunden. |
|
Wird zur Anzeige von Links in Zellen verwendet. Wird beim Binden nicht automatisch generiert. Wird normalerweise manuell an Daten gebunden. |
|
Der benutzerdefinierte Spaltentyp |
Sie können eine eigene Spaltenklasse erstellen, indem Sie die DataGridViewColumn-Klasse oder eine ihrer abgeleiteten Klassen erben, um benutzerdefiniertes Aussehen, Verhalten oder gehostete Steuerelemente bereitzustellen. Weitere Informationen finden Sie unter Gewusst wie: Anpassen von Zellen und Spalten im DataGridView-Steuerelement in Windows Forms durch Erweitern des Aussehens und Verhaltens |
Diese Spaltentypen werden in den folgenden Abschnitten ausführlich beschrieben.
DataGridViewTextBoxColumn
DataGridViewTextBoxColumn ist ein allgemeiner Spaltentyp für textbasierte Werte wie Zahlen und Zeichenfolgen. Im Bearbeitungsmodus wird ein TextBox-Steuerelement in der aktiven Zelle angezeigt, sodass die Benutzer den Zellenwert ändern können.
Zellenwerte werden zur Anzeige automatisch in Zeichenfolgen konvertiert. Vom Benutzer eingegebene oder geänderte Werte werden automatisch analysiert, um einen Zellenwert des entsprechenden Datentyps zu erstellen. Sie können diese Konvertierungen anpassen, indem Sie das CellFormatting-Ereignis und CellParsing-Ereignis des DataGridView-Steuerelements behandeln.
Der Zellenwertdatentyp einer Spalte wird in der ValueType-Eigenschaft der Spalte angegeben.
DataGridViewCheckBoxColumn
Der DataGridViewCheckBoxColumn wird mit dem Boolean-Wert und dem CheckState-Wert verwendet. Boolean-Werte werden als Kontrollkästchen mit zwei oder drei Zustanden angezeigt, je nach Wert der ThreeState-Eigenschaft. Wenn die Spalte an CheckState-Werte gebunden ist, lautet der ThreeState-Eigenschaftswert standardmäßig true.
Für gewöhnlich dienen Kontrollkästchenzellenwerte entweder zum Speichern, ebenso wie andere Daten, oder zum Ausführen von Sammeloperationen. Wenn Sie unmittelbar darauf reagieren möchten, wenn Benutzer auf eine Kontrollkästchenzelle klicken, können Sie das CellClick-Ereignis behandeln. Dieses Ereignis tritt jedoch vor einer Aktualisierung des Zellwerts auf. Wenn Sie den neuen Wert zur Zeit des Klickens benötigen, kann der erwartete Wert z. B. mithilfe des aktuellen Werts berechnet werden. Es besteht auch die Möglichkeit, sofort einen Commit für die Änderung auszuführen und das CellValueChanged-Ereignis zu behandeln, um darauf zu antworten. Um für die Änderung einen Commit auszuführen, wenn auf die Zelle geklickt wurde, muss das CurrentCellDirtyStateChanged-Ereignis behandelt werden. Wenn die aktuelle Zelle eine Kontrollkästchenzelle ist, rufen Sie im Handler die CommitEdit-Methode auf, und übergeben Sie den Commit-Wert.
DataGridViewImageColumn
DataGridViewImageColumn wird zur Anzeige von Bildern verwendet. Bildspalten können wie folgt gefüllt werden: automatisch aus einer Datenquelle, manuell für ungebundene Spalten oder dynamisch in einem Handler für das CellFormatting-Ereignis.
Das automatische Füllen einer Bildspalte aus einer Datenquelle kann mit Bytearrays in verschiedenen Bildformaten erfolgen, einschließlich aller von der Image-Klasse unterstützen Formate und dem von Microsoft® Access und der Beispieldatenbank Northwind verwendeten OLE Picture-Format.
Eine Bildspalte manuell zu füllen bietet sich an, wenn Sie die Funktionalität einer DataGridViewButtonColumn bereitstellen, aber das Aussehen anpassen möchten. Sie können das DataGridView.CellClick-Ereignis behandeln, um auf Klicks in eine Bildzelle zu reagieren.
Das Füllen von Zellen einer Bildspalte in einem Handler für das CellFormatting-Ereignis ist hilfreich, wenn Sie Bilder für berechnete Werte oder Werte in einem anderen Format als einem Bildformat bereitstellen möchten. Möglicherweise verfügen Sie über eine Risikospalte mit den Zeichenfolgenwerten "high", "middle" und "low", die Sie als Symbole anzeigen möchten. Denkbar ist auch, dass Sie über eine Bildspalte verfügen, die anstelle des binären Inhalts der Bilder die Speicherorte von Bildern enthält, die geladen werden müssen.
DataGridViewButtonColumn
Mit DataGridViewButtonColumn können Sie eine Spalte mit Zellen anzeigen, die Schaltflächen enthalten. Dies bietet sich an, wenn Sie Benutzern die Möglichkeit geben möchten, Aktionen zu bestimmten Datensätzen auf einfache Weise auszuführen, z. B. das Erteilen eines Auftrags oder das Anzeigen von untergeordneten Datensätzen in einem separaten Fenster.
Schaltflächenspalten werden bei der Datenbindung eines DataGridView-Steuerelements nicht automatisch generiert. Um Schaltflächenspalten verwenden zu können, müssen Sie sie manuell erstellen und der von der DataGridView.Columns-Eigenschaft zurückgegebenen Auflistung hinzufügen.
Sie können auf das Klicken in Schaltflächenzellen reagieren, indem Sie das DataGridView.CellClick-Ereignis behandeln.
DataGridViewComboBoxColumn
Mit DataGridViewComboBoxColumn können Sie eine Spalte mit Zellen anzeigen, die Dropdown-Listenfelder enthalten. Dies ist für die Dateneingabe in Felder geeignet, die nur bestimmte Werte enthalten können, z. B. die Spalte Category der Tabelle Products in der Beispieldatenbank Northwind.
Sie können die für alle Zellen verwendete Dropdownliste auf die gleiche Weise füllen wie eine ComboBox-Dropdownliste, d. h. entweder manuell mit der von der Items-Eigenschaft zurückgegebenen Auflistung oder durch Binden an eine Datenquelle mithilfe der Eigenschaften DataSource, DisplayMember und ValueMember. Weitere Informationen finden Sie unter ComboBox-Steuerelement (Windows Forms).
Sie können die eigentlichen Zellenwerte an die vom DataGridView-Steuerelement verwendete Datenquelle binden, indem Sie die DataPropertyName-Eigenschaft der System.Windows.Forms.DataGridViewComboBoxColumn festlegen.
Kombinationsfeldspalten werden bei der Datenbindung eines DataGridView-Steuerelements nicht automatisch generiert. Um Kombinationsfeldspalten verwenden zu können, müssen Sie sie manuell erstellen und der von der Columns-Eigenschaft zurückgegebenen Auflistung hinzufügen.
DataGridViewLinkColumn
Mit DataGridViewLinkColumn können Sie eine Spalte mit Zellen anzeigen, die Links enthalten. Dies bietet sich an, wenn die Datenquelle URL-Werte enthält, oder aber als Alternative zur Schaltflächenspalte für bestimmte Verhalten wie das Öffnen eines Fensters mit untergeordneten Datensätzen.
Linkspalten werden bei der Datenbindung eines DataGridView-Steuerelements nicht automatisch generiert. Um Linkspalten verwenden zu können, müssen Sie sie manuell erstellen und der von der Columns-Eigenschaft zurückgegebenen Auflistung hinzufügen.
Sie können auf Klicks auf Links reagieren, indem Sie das CellContentClick-Ereignis behandeln. Dieses Ereignis unterscheidet sich vom CellClick-Ereignis und CellMouseClick-Ereignis, die auftreten, sobald ein Benutzer auf eine beliebige Stelle in einer Zelle klickt.
Die DataGridViewLinkColumn-Klasse stellt mehrere Eigenschaften zum Ändern der Darstellung von Links vor, bei und nach dem Klicken bereit.
Siehe auch
Aufgaben
Gewusst wie: Anzeigen von Bildern in Zellen des DataGridView-Steuerelements in Windows Forms
Gewusst wie: Arbeiten mit Bildspalten im DataGridView-Steuerelement in Windows Forms