Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Das DataGridView-Steuerelement ersetzt und fügt dem DataGrid-Steuerelement Funktionen hinzu; Das DataGrid-Steuerelement wird jedoch sowohl für die Abwärtskompatibilität als auch für die zukünftige Verwendung beibehalten, wenn Sie dies auswählen. Weitere Informationen finden Sie unter Unterschiede zwischen dem DataGridView-Steuerelement und dem DataGrid-Steuerelement in Windows Forms.
Das Windows Forms-Steuerelement DataGrid zeigt Daten in einer Reihe von Zeilen und Spalten an. Der einfachste Fall ist, wenn das Raster an eine Datenquelle mit einer einzelnen Tabelle gebunden ist, die keine Beziehungen enthält. In diesem Fall werden die Daten wie in einer Kalkulationstabelle in einfachen Zeilen und Spalten angezeigt. Weitere Informationen zum Binden von Daten an andere Steuerelemente finden Sie unter "Datenbindung" und "Windows Forms".
Wenn die DataGrid an Daten mit mehreren verknüpften Tabellen gebunden ist und die Navigation im Raster aktiviert ist, werden im Raster Erweiterungsschalter in jeder Zeile angezeigt. Mit einer Erweiterungsfunktion kann der Benutzer von einer übergeordneten Tabelle zu einer untergeordneten Tabelle wechseln. Wenn Sie auf einen Knoten klicken, wird die untergeordnete Tabelle angezeigt, und durch Klicken auf eine Schaltfläche "Zurück" wird die ursprüngliche übergeordnete Tabelle angezeigt. Auf diese Weise zeigt das Raster die hierarchischen Beziehungen zwischen Tabellen an.
Der folgende Screenshot zeigt ein DataGrid, das an Daten mit mehreren Tabellen gebunden ist:
Dies DataGrid kann eine Benutzeroberfläche für ein Dataset, die Navigation zwischen verwandten Tabellen sowie umfangreiche Formatierungs- und Bearbeitungsfunktionen bereitstellen.
Die Anzeige und Manipulation von Daten sind separate Funktionen: Das Steuerelement behandelt die Benutzeroberfläche, während Datenaktualisierungen von der Windows Forms-Datenbindungsarchitektur und von .NET Framework-Datenanbietern behandelt werden. Daher bleiben mehrere Steuerelemente, die an dieselbe Datenquelle gebunden sind, synchronisiert.
Hinweis
Wenn Sie mit dem DataGrid-Steuerelement in Visual Basic 6.0 vertraut sind, finden Sie einige wesentliche Unterschiede im Windows Forms-Steuerelement DataGrid .
Wenn das Gitter an ein DataSet gebunden ist, werden die Spalten und Zeilen automatisch erstellt, formatiert und gefüllt. Weitere Informationen finden Sie unter "Datenbindung" und "Windows Forms". Nach der Generierung des DataGrid Steuerelements können Sie Spalten und Zeilen je nach Ihren Anforderungen hinzufügen, löschen, neu anordnen und formatieren.
Binden von Daten an das Steuerelement
Damit das DataGrid Steuerelement funktioniert, sollte es an eine Datenquelle gebunden werden, und zwar mit den Eigenschaften DataSource und DataMember zur Entwurfszeit oder der Methode SetDataBinding zur Laufzeit. Diese Bindung verweist DataGrid auf ein instanziiertes Datenquellenobjekt, z. B. ein DataSet oder ein DataTable. Das DataGrid Steuerelement zeigt die Ergebnisse von Aktionen an, die für die Daten ausgeführt werden. Die meisten datenspezifischen Aktionen werden nicht über die DataGrid ausgeführt, sondern über die Datenquelle.
Wenn die Daten im gebundenen Dataset über einen beliebigen Mechanismus aktualisiert werden, spiegelt das DataGrid Steuerelement die Änderungen wider. Wenn das Datenraster und die zugehörigen Tabellen- und Spaltenformatvorlagen die Eigenschaft ReadOnly
auf false
festgelegt haben, können die Daten im Dataset über das Steuerelement DataGrid aktualisiert werden.
Es kann jeweils nur eine Tabelle angezeigt DataGrid werden. Wenn eine Eltern-Kind-Beziehung zwischen Tabellen definiert ist, kann der Benutzer zwischen den verknüpften Tabellen wechseln, um die auszuwählende Tabelle im DataGrid-Steuerelement anzuzeigen. Informationen zum Binden eines DataGrid Steuerelements an eine ADO.NET-Datenquelle zur Entwurfszeit oder Laufzeit finden Sie unter So binden Sie das Windows Forms DataGrid-Steuerelement an eine Datenquelle.
Gültige Datenquellen für das DataGrid sind:
DataTable-Klasse
DataView-Klasse
DataSet-Klasse
DataViewManager-Klasse
Wenn es sich bei der Quelle um ein Dataset handelt, kann es sich bei dem Dataset um ein Objekt im Formular oder um ein Objekt handeln, das von einem XML-Webdienst an das Formular übergeben wird. Sie können an typisierte oder untypisierte Datensätze binden.
Sie können ein DataGrid Steuerelement auch an zusätzliche Strukturen binden, wenn die Objekte in der Struktur, z. B. die Elemente in einem Array, öffentliche Eigenschaften verfügbar machen. Im Raster werden alle öffentlichen Eigenschaften der Elemente in der Struktur angezeigt. Wenn Sie das DataGrid Steuerelement beispielsweise an ein Array von Kundenobjekten binden, zeigt das Raster alle öffentlichen Eigenschaften dieser Kundenobjekte an. In einigen Fällen bedeutet dies, dass zwar eine Bindung an die Struktur möglich ist, die resultierende gebundene Struktur jedoch möglicherweise keine praktische Anwendung hat. Sie können z. B. eine Bindung an ein Array ganzzahliger Zahlen vornehmen, da der Integer
Datentyp jedoch keine öffentliche Eigenschaft unterstützt, kann das Raster keine Daten anzeigen.
Sie können eine Bindung an die folgenden Strukturen herstellen, wenn ihre Elemente öffentliche Eigenschaften verfügbar machen:
Jede Komponente, die die IList Schnittstelle implementiert. Dazu gehören Arrays mit einer Dimension.
Jede Komponente, die die IListSource Schnittstelle implementiert.
Jede Komponente, die die IBindingList Schnittstelle implementiert.
Weitere Informationen zu möglichen Datenquellen finden Sie unter Datenquellen, die von Windows Forms unterstützt werden.
Rasteranzeige
Eine häufige Verwendung des DataGrid Steuerelements besteht darin, eine einzelne Datentabelle aus einem Dataset anzuzeigen. Das Steuerelement kann jedoch auch verwendet werden, um mehrere Tabellen anzuzeigen, einschließlich verwandter Tabellen. Die Anzeige des Rasters ist automatisch auf die Datenquelle abgestimmt. Die folgende Tabelle zeigt, was für verschiedene Konfigurationen angezeigt wird.
Inhalt des Datasets | Was angezeigt wird |
---|---|
Einzelne Tabelle. | Die Tabelle wird in einem Raster angezeigt. |
Mehrere Tabellen. | Das Raster kann eine Strukturansicht anzeigen, in der Benutzer navigieren können, um die Tabelle zu finden, die sie anzeigen möchten. |
Mehrere verknüpfte Tabellen. | Das Raster kann eine Strukturansicht anzeigen, um Tabellen auszuwählen, oder Sie können angeben, dass das Raster die übergeordnete Tabelle anzeigt. Datensätze in der übergeordneten Tabelle ermöglichen Benutzern das Navigieren zu verwandten untergeordneten Zeilen. |
Hinweis
Tabellen in einem Datensatz sind mit einer DataRelation. Siehe auch Erstellen von Beziehungen zwischen Datasets.
Wenn das DataGrid Steuerelement eine Tabelle anzeigt und die AllowSorting Eigenschaft auf true
festgelegt ist, können Daten, indem man auf die Spaltenüberschriften klickt, neu sortiert werden. Der Benutzer kann auch Zeilen hinzufügen und Zellen bearbeiten.
Die Beziehungen zwischen einer Gruppe von Tabellen werden Benutzern mithilfe einer übergeordneten/untergeordneten Navigationsstruktur angezeigt. Übergeordnete Tabellen sind die höchste Datenebene, und untergeordnete Tabellen sind jene Datentabellen, die auf den einzelnen Einträgen in den übergeordneten Tabellen basieren. Erweiterungselemente werden in jeder übergeordneten Zeile angezeigt, die eine untergeordnete Tabelle enthält. Durch Klicken auf eine Erweiterung wird eine Liste mit webähnlichen Links zu den untergeordneten Tabellen generiert. Wenn der Benutzer einen Link auswählt, wird die untergeordnete Tabelle angezeigt. Beim Klicken auf das Symbol „Übergeordnete Zeilen anzeigen/ausblenden“ (), werden die Informationen zur übergeordneten Tabelle ausgeblendet oder wieder eingeblendet, wenn der Benutzer sie zuvor ausgeblendet hat. Der Benutzer kann auf eine Schaltfläche "Zurück" klicken, um zur zuvor angezeigten Tabelle zurückzukehren.
Spalten und Zeilen
Das DataGrid besteht aus einer Auflistung von DataGridTableStyle Objekten, die in der DataGrid Eigenschaft des Steuerelements TableStyles enthalten sind. Eine Tabellenformatvorlage kann eine Auflistung von DataGridColumnStyle Objekten enthalten, die in der Eigenschaft GridColumnStyles der DataGridTableStyle enthalten sind. Sie können die TableStyles Eigenschaften und GridColumnStyles Eigenschaften mithilfe von Sammlungs-Editoren bearbeiten, auf die über das Eigenschaftenfenster zugegriffen wird.
Alle mit dem DataGridTableStyle-Steuerelement verbundenen DataGrid können über das GridTableStylesCollection darauf zugegriffen werden. Der GridTableStylesCollection kann im Designer mit dem DataGridTableStyle-Sammlungseditor oder programmgesteuert über die DataGrid-Eigenschaft des TableStyles-Steuerelements bearbeitet werden.
Die folgende Abbildung zeigt die Objekte, die im DataGrid-Steuerelement enthalten sind:
Tabellenformatvorlagen und Spaltenformatvorlagen werden mit DataTable Objekten und DataColumn Objekten synchronisiert, indem sie ihre MappingName
Eigenschaften auf die entsprechenden TableName Eigenschaften und ColumnName Eigenschaften festlegen. Wenn ein DataGridTableStyle ohne Spaltenformatvorlagen zu einem an eine gültige Datenquelle gebundenen DataGrid-Steuerelement hinzugefügt wird und die MappingName-Eigenschaft dieser Tabellenformatvorlage auf eine gültige TableName-Eigenschaft festgelegt wird, wird eine Sammlung von DataGridColumnStyle-Objekten für diese Tabellenformatvorlage erstellt. Für jedes DataColumn, das in der Columns-Sammlung des DataTable gefunden wird, wird ein entsprechendes DataGridColumnStyle der GridColumnStylesCollection hinzugefügt.
GridColumnStylesCollection wird über die GridColumnStyles-Eigenschaft der DataGridTableStyle aufgerufen. Spalten können mithilfe der Methoden Add oder Remove auf dem GridColumnStylesCollection dem Raster hinzugefügt oder daraus gelöscht werden. Weitere Informationen finden Sie unter So fügen Sie Tabellen und Spalten zum Windows Forms DataGrid-Steuerelement hinzu und So löschen oder verbergen Sie Spalten im Windows Forms DataGrid-Steuerelement.
Eine Sammlung von Spaltentypen erweitert die DataGridColumnStyle Klasse mit umfangreichen Formatierungs- und Bearbeitungsfunktionen. Alle Spaltentypen erben von der DataGridColumnStyle Basisklasse. Die erstellte Klasse hängt von der DataType Eigenschaft ab DataColumn , von der die DataGridColumn Klasse basiert. DataColumn, dessen DataType-Eigenschaft auf Boolean festgelegt ist, wird beispielsweise mit dem DataGridBoolColumn verknüpft. In der folgenden Tabelle werden die einzelnen Spaltentypen beschrieben.
Spaltenart | BESCHREIBUNG |
---|---|
DataGridTextBoxColumn | Akzeptiert und zeigt Daten als formatierte oder unformatierte Zeichenfolgen an. Bearbeitungsfunktionen sind identisch mit der Bearbeitung von Daten in einem einfachen TextBoxFormat. Erbt von DataGridColumnStyle. |
DataGridBoolColumn | Akzeptiert und zeigt true , false und null-Werte an. Erbt von DataGridColumnStyle. |
Wenn Sie auf den rechten Rand einer Spalte doppelklicken, wird die Größe der Spalte so geändert, dass die Vollbeschriftung und der breiteste Eintrag angezeigt werden.
Tabellenstile und Spaltenstile
Sobald Sie das Standardformat des DataGrid Steuerelements eingerichtet haben, können Sie die Farben anpassen, die verwendet werden, wenn bestimmte Tabellen im Datenraster angezeigt werden.
Dies wird erreicht, indem Instanzen der DataGridTableStyle Klasse erstellt werden. Tabellenformatvorlagen geben die Formatierung bestimmter Tabellen an, die sich von der Standardformatierung des DataGrid Steuerelements selbst unterscheiden. Jede Tabelle kann jeweils nur eine Tabellenformatvorlage definiert haben.
Manchmal möchten Sie eine bestimmte Spalte anders aussehen als die restlichen Spalten einer bestimmten Datentabelle. Mithilfe der GridColumnStyles Eigenschaft können Sie einen benutzerdefinierten Satz von Spaltenformatvorlagen erstellen.
Spaltenformatvorlagen beziehen sich auf Spalten in einem Dataset genau wie Tabellenformatvorlagen auf Datentabellen. Ebenso wie jeder Tabelle jeweils nur eine Tabellenformatvorlage zugeordnet werden kann, kann jeder Spalte in einer bestimmten Tabellenformatvorlage ebenfalls nur eine Spaltenformat zugeordnet werden. Diese Beziehung wird in der Eigenschaft der Spalte MappingName definiert.
Wenn Sie eine Tabellenformatvorlage ohne Spaltenformatvorlagen erstellt haben, fügt Visual Studio standardmäßige Spaltenformatvorlagen hinzu, wenn das Formular und das Raster zur Laufzeit erstellt werden. Wenn Sie jedoch eine Tabellenformatvorlage erstellt und Spaltenformatvorlagen hinzugefügt haben, erstellt Visual Studio keine Spaltenformatvorlagen. Außerdem müssen Sie Spaltenformatvorlagen definieren und mit dem Zuordnungsnamen zuweisen, damit die gewünschten Spalten im Raster angezeigt werden.
Da Sie angeben, welche Spalten im Datenraster enthalten sind, indem Sie sie eine Spaltenformatvorlage zuweisen und keine Spaltenformatvorlage den Spalten zugewiesen wurde, können Sie Datenspalten in das Dataset einschließen, die nicht im Raster angezeigt werden. Da die Datenspalte jedoch im Dataset enthalten ist, können Sie die nicht angezeigten Daten programmgesteuert bearbeiten.
Hinweis
Bevor Sie Tabellenformatvorlagen der Tabellenformatvorlagensammlung hinzufügen, erstellen Sie im Allgemeinen Spaltenformatvorlagen und fügen Sie sie der Spaltenformatvorlagensammlung hinzu. Wenn Sie der Sammlung einen leeren Tabellenstil hinzufügen, werden Spaltenstile automatisch generiert. Daher wird eine Ausnahme ausgelöst, wenn Sie versuchen, der Spaltenformatvorlagenauflistung neue Spaltenformatvorlagen mit doppelten MappingName Werten hinzuzufügen.
Manchmal möchten Sie nur eine Spalte zwischen vielen Spalten optimieren. Das Dataset enthält beispielsweise 50 Spalten, und Sie möchten nur 49 davon. In diesem Fall ist es einfacher, alle 50 Spalten zu importieren und programmgesteuert zu entfernen, anstatt jede der gewünschten 49 einzelnen Spalten programmgesteuert hinzuzufügen.
Formatierung
Formatierungen, die auf das DataGrid Steuerelement angewendet werden können, umfassen Rahmenarten, Gitternetzlinienarten, Schriftarten, Beschriftungseigenschaften, Datenausrichtung und abwechselnde Hintergrundfarben zwischen Zeilen. Weitere Informationen finden Sie unter How to: Format the Windows Forms DataGrid Control.
Ereignisse
Neben den allgemeinen Steuerelementereignissen wie MouseDown, Enter und Scroll unterstützt das DataGrid-Steuerelement Ereignisse, die mit der Bearbeitung und Navigation innerhalb des Rasters verknüpft sind. Die CurrentCell Eigenschaft bestimmt, welche Zelle ausgewählt ist. Das CurrentCellChanged Ereignis wird ausgelöst, wenn der Benutzer zu einer neuen Zelle navigiert. Wenn der Benutzer über Eltern/Kind-Beziehungen zu einer neuen Tabelle navigiert, wird das Navigate Ereignis ausgelöst. Das BackButtonClick Ereignis tritt ein, wenn der Benutzer auf den Button "Zurück" klickt, während er eine Untertabelle ansieht, und das ShowParentDetailsButtonClick Ereignis tritt ein, wenn auf das Symbol "übergeordnete Zeilen anzeigen/ausblenden" geklickt wird.
Siehe auch
- DataGrid-Steuerelement
- Binden des DataGrid-Steuerelements in Windows Forms an eine Datenquelle
- Hinzufügen von Tabellen und Spalten zum DataGrid-Steuerelement in Windows Forms
- Löschen oder Ausblenden von Spalten aus dem DataGrid-Steuerelement in Windows Forms
- Vorgehensweise: Formatieren des Windows Forms DataGrid-Steuerelements
.NET Desktop feedback