Architektur des DataGridView-Steuerelements (Windows Forms)

Das DataGridView-Steuerelement und seine zugehörigen Klassen sind als flexibles, erweiterbares System zum Anzeigen und Bearbeiten von Tabellendaten konzipiert. Diese Klassen sind alle im System.Windows.Forms-Namespace enthalten und mit dem Präfix DataGridView versehen.

Architekturelemente

Die primären DataGridView-Begleitlassen sind von DataGridViewElement abgeleitet. Das folgende Objektmodell veranschaulicht die DataGridViewElement-Vererbungshierarchie.

Diagram that shows the DataGridViewElement Object Model hierarchy.

Die DataGridViewElement-Klasse bietet einen Verweis auf das übergeordnete DataGridView-Steuerelement und hat eine State-Eigenschaft mit einem Wert, der eine Kombination von Werten aus der DataGridViewElementStates-Enumeration darstellt.

In den folgenden Abschnitten werden die DataGridView-Begleitklassen ausführlicher beschrieben.

DataGridViewElementStates

Die DataGridViewElementStates-Enumeration verfügt über folgende Werte:

Die Werte dieser Enumeration können mit den bitweisen logischen Operatoren kombiniert werden, sodass die State-Eigenschaft mehr als einen Zustand auf einmal ausdrücken kann. Beispielsweise kann DataGridViewElement gleichzeitig Frozen, Selected, und Visible sein.

Zellen und Bänder

Das DataGridView-Steuerelement umfasst zwei grundlegende Arten von Objekten: Zellen und Bänder. Alle Zellen sind von der DataGridViewCell-Basisklasse abgeleitet. Die beiden Arten von Bändern, DataGridViewColumn und DataGridViewRow, sind beide von der DataGridViewBand-Basisklasse abgeleitet.

Das DataGridView-Steuerelement interagiert mit mehreren Klassen, aber die am häufigsten vorkommenden sind DataGridViewCell, DataGridViewColumn und DataGridViewRow.

DataGridViewCell

Die Zelle ist die grundlegende Interaktionseinheit für DataGridView. Die Anzeige ist auf Zellen zentriert, die Dateneingabe erfolgt häufig über die Zellen. Sie können mithilfe der Cells-Sammlung der DataGridViewRow-Klasse auf Zellen zugreifen und mithilfe der SelectedCells-Sammlung des DataGridView-Steuerelements auf die ausgewählten Zellen zugreifen. Das folgende Objektmodell veranschaulicht diese Nutzung und die DataGridViewCell-Vererbungshierarchie.

Diagram that shows the DataGridViewCell Object Model hierarchy.

Der DataGridViewCell-Typ ist eine abstrakte Basisklasse, von der alle Zellentypen abgeleitet sind. DataGridViewCell und seine abgeleiteten Typen sind keine Windows Forms-Steuerelemente, aber einige hosten Windows Forms-Steuerelemente. Alle von einer Zelle unterstützten Bearbeitungsfunktionen werden in der Regel von einem gehosteten Steuerelement übernommen.

DataGridViewCell-Steuerelemente steuern ihr eigenes Aussehen und ihre Zeichenfunktionen nicht auf dieselbe Weise wie Windows Forms-Steuerelemente. Stattdessen ist DataGridView für das Aussehen seiner DataGridViewCell-Objekte verantwortlich. Sie können Aussehen und Verhalten von Zellen erheblich beeinflussen, indem Sie mit den Eigenschaften und Ereignissen des DataGridView-Steuerelements interagieren. Wenn Sie spezielle Anpassungen benötigen, die über die Möglichkeiten des DataGridView-Steuerelements hinausgehen, können Sie Ihre eigene Klasse implementieren, die von DataGridViewCell oder einer seiner Unterklassen abgeleitet ist.

Die folgende Liste zeigt die von DataGridViewCell abgeleiteten Klassen:

DataGridViewColumn

Das Schema des an das DataGridView-Steuerelement angefügten Datenspeichers wird in den Spalten des DataGridView-Steuerelements ausgedrückt. Sie können mithilfe der Columns-Sammlung auf die Spalten des DataGridView-Steuerelements zugreifen. Sie können mithilfe der SelectedColumns-Sammlung auf die ausgewählten Spalten zugreifen. Das folgende Objektmodell veranschaulicht diese Nutzung und die DataGridViewColumn-Vererbungshierarchie.

Diagram that shows the DataGridViewColumn Object Model hierarchy.

Einige der Schlüsselzellentypen haben entsprechende Spaltentypen. Diese sind von der DataGridViewColumn-Basisklasse abgeleitet.

Die folgende Liste zeigt die von DataGridViewColumn abgeleiteten Klassen:

DataGridView-Bearbeitungssteuerelemente

Zellen, die erweiterte Bearbeitungsfunktionen unterstützen, verwenden in der Regel ein gehostetes Steuerelement, das von einem Windows Forms-Steuerelement abgeleitet ist. Diese Steuerelemente implementieren auch die IDataGridViewEditingControl-Schnittstelle. Das folgende Objektmodell veranschaulicht die Nutzung dieser Steuerelemente.

Diagram showing the DataGridView Editing Control Object Model hierarchy.

Die folgenden Bearbeitungssteuerelemente werden mit dem DataGridView-Steuerelement bereitgestellt:

Informationen über die Erstellung eigener Steuerelemente finden Sie unter Vorgehensweise: Hosten von Steuerelementen in DataGridView-Zellen in Windows Forms.

Die folgende Tabelle veranschaulicht die Beziehung zwischen Zellen- und Spaltentypen und Bearbeitungssteuerelementen.

Zellentyp Gehostetes Steuerelement Spaltentyp
DataGridViewButtonCell DataGridViewButtonColumn
DataGridViewCheckBoxCell n/v DataGridViewCheckBoxColumn
DataGridViewComboBoxCell DataGridViewComboBoxEditingControl DataGridViewComboBoxColumn
DataGridViewImageCell n/v DataGridViewImageColumn
DataGridViewLinkCell DataGridViewLinkColumn
DataGridViewTextBoxCell DataGridViewTextBoxEditingControl DataGridViewTextBoxColumn

DataGridViewRow

Die DataGridViewRow-Klasse zeigt die Datenfelder eines Datensatzes aus dem Datenspeicher an, an den das DataGridView-Steuerelement angefügt ist. Sie können mithilfe der Rows-Sammlung auf die Zeilen des DataGridView-Steuerelements zugreifen. Sie können mithilfe der SelectedRows-Sammlung auf die ausgewählten Zeilen zugreifen. Das folgende Objektmodell veranschaulicht diese Nutzung und die DataGridViewRow-Vererbungshierarchie.

Diagram that shows the DataGridViewRow Object Model hierarchy.

Sie können Ihre eigenen Typen von der DataGridViewRow-Klasse ableiten, obwohl dies in der Regel nicht notwendig ist. Das DataGridView-Steuerelement verfügt über mehrere zeilenbezogene Ereignisse und Eigenschaften, mit denen Sie das Verhalten seiner DataGridViewRow-Objekte anpassen können.

Wenn Sie die AllowUserToAddRows-Eigenschaft des DataGridView-Steuerelements aktivieren, wird als letzte Zeile eine spezielle Zeile zum Hinzufügen neuer Zeilen angezeigt. Diese Zeile ist Teil der Rows-Sammlung, hat aber eine besondere Funktionalität, die Ihre Aufmerksamkeit erfordert. Weitere Informationen finden Sie unter Verwenden der Zeile für neue Datensätze im DataGridView-Steuerelement in Windows Forms.

Siehe auch