Freigeben über


Vorgehensweise: Formatieren des DataGrid-Steuerelements in Windows Forms

Hinweis

Obwohl das DataGridView-Steuerelement das DataGrid-Steuerelement ersetzt und funktionell erweitert, wird das DataGrid-Steuerelement sowohl aus Gründen der Abwärtskompatibilität als auch, falls gewünscht, für die zukünftige Verwendung beibehalten. Weitere Informationen finden Sie unter Unterschiede zwischen dem DataGridView-Steuerelement und dem DataGrid-Steuerelement in Windows Forms.

Die Anwendung unterschiedlicher Farben auf verschiedene Teile eines DataGrid-Steuerelements kann dazu beitragen, dass die darin enthaltenen Informationen leichter zu lesen und zu interpretieren sind. Sie können Farben auf Zeilen und Spalten anwenden. Zeilen und Spalten können außerdem nach Ihrem Ermessen ein- oder ausgeblendet werden.

Bei der Formatierung des Steuerelements DataGrid gibt es drei grundlegende Aspekte. Sie können Eigenschaften festlegen, um ein Standardformat festzulegen, in dem die Daten angezeigt werden. Auf dieser Grundlage können Sie dann die Art und Weise anpassen, in der bestimmte Tabellen zur Laufzeit angezeigt werden. Und schließlich können Sie die Spalten, die im Datenraster angezeigt werden, sowie die angezeigten Farben und sonstigen Formatierungen ändern.

Im ersten Schritt der Formatierung eines Datenrasters können Sie die Eigenschaften von DataGrid selbst festlegen. Diese Farb- und Formatauswahl bildet die Grundlage, von der aus Sie dann je nach angezeigten Datentabellen und Spalten Änderungen vornehmen können.

So legen Sie ein Standardformat für das DataGrid-Steuerelement fest

  1. Legen Sie die folgenden Eigenschaften nach Ihren Anforderungen fest:

    Eigenschaft BESCHREIBUNG
    AlternatingBackColor Die Eigenschaft BackColor definiert die Farbe der Zeilen mit geraden Zahlen im Raster. Wenn Sie die Eigenschaft AlternatingBackColor auf eine andere Farbe festlegen, erhält jede zweite Zeile diese neue Farbe (Zeile 1, 3, 5, usw.).
    BackColor Die Hintergrundfarbe der Zeilen mit geraden Zahlen im Raster (Zeilen 0, 2, 4, 6 usw.).
    BackgroundColor Während die Eigenschaften BackColor und AlternatingBackColor die Farbe der Zeilen im Raster bestimmen, legt die Eigenschaft BackgroundColor die Farbe des Bereichs ohne Zeilen fest. Dieser ist nur sichtbar, wenn im Raster nach unten gescrollt wird, oder wenn nur wenige Zeilen im Raster enthalten sind.
    BorderStyle Der Rahmenstil des Rasters, einer der Werte aus der Enumeration BorderStyle.
    CaptionBackColor Die Hintergrundfarbe der Fensterbeschriftung des Rasters, die unmittelbar über dem Raster angezeigt wird.
    CaptionFont Die Schriftart für die Beschriftung am oberen Rand des Rasters.
    CaptionForeColor Die Hintergrundfarbe für die Fensterbeschriftung des Rasters.
    Font Die Schriftart, die zur Anzeige des Texts im Raster verwendet wird.
    ForeColor Die Schriftfarbe für die Daten in den Zeilen des Datenrasters.
    GridLineColor Die Farbe der Rasterlinien des Datenrasters.
    GridLineStyle Der Stil der Linien, die die Zellen des Rasters trennen, einer der Werte aus der Enumeration DataGridLineStyle.
    HeaderBackColor Die Hintergrundfarbe der Zeilen- und Spaltenüberschriften.
    HeaderFont Die für die Spaltenüberschriften verwendete Schriftart.
    HeaderForeColor Die Vordergrundfarbe der Spaltenüberschriften des Rasters, einschließlich des Texts der Spaltenüberschrift und der Plus- bzw. Minus-Symbole (zum Erweitern von Zeilen, wenn mehrere zusammenhängende Tabellen angezeigt werden).
    LinkColor Die Textfarbe aller Links im Datenraster, einschließlich der Links zu untergeordneten Tabellen, dem Beziehungsnamen usw.
    ParentRowsBackColor In einer untergeordneten Tabelle ist dies die Hintergrundfarbe der übergeordneten Zeilen.
    ParentRowsForeColor In einer untergeordneten Tabelle ist dies die Vordergrundfarbe der übergeordneten Zeilen.
    ParentRowsLabelStyle Bestimmt, ob die Tabellen- und Spaltennamen in der übergeordneten Zeile angezeigt werden, und zwar mithilfe der Enumeration DataGridParentRowsLabelStyle.
    PreferredColumnWidth Die Standardbreite der Spalten des Rasters in Pixel. Legen Sie diese Eigenschaft fest, bevor Sie die Eigenschaften DataSource und DataMember zurücksetzen (entweder separat oder über die Methode SetDataBinding), sonst hat die Eigenschaft keine Wirkung.

    Die Eigenschaft kann nicht auf einen Wert kleiner als 0 festgelegt werden.
    PreferredRowHeight Die Zeilenhöhe (in Pixel) der Zeilen im Raster. Legen Sie diese Eigenschaft fest, bevor Sie die Eigenschaften DataSource und DataMember zurücksetzen (entweder separat oder über die Methode SetDataBinding), sonst hat die Eigenschaft keine Wirkung.

    Die Eigenschaft kann nicht auf einen Wert kleiner als 0 festgelegt werden.
    RowHeaderWidth Die Breite der Zeilenüberschriften im Raster.
    SelectionBackColor Wenn eine Zeile oder Zelle ausgewählt ist, ist dies die Hintergrundfarbe.
    SelectionForeColor Wenn eine Zeile oder Zelle ausgewählt ist, ist dies die Vordergrundfarbe.

    Hinweis

    Denken Sie beim Anpassen der Farben von Steuerelementen daran, dass eine ungünstige Farbwahl (z. B. Rot und Grün) die Barrierefreiheit des Steuerelements beeinträchtigen kann. Verwenden Sie die in der Palette Systemfarben verfügbaren Farben, um dieses Problem zu vermeiden.

    In der folgenden Anleitung wird davon ausgegangen, dass Ihr Formular ein DataGrid-Steuerelement enthält, das an eine Datentabelle gebunden ist. Weitere Informationen finden Sie unter Binden des DataGrid-Steuerelements in Windows Forms an eine Datenquelle.

So legen Sie das Tabellen- und Spaltenformat einer Datentabelle programmgesteuert fest

  1. Erstellen Sie ein neues Tabellenformat, und legen Sie dessen Eigenschaften fest.

  2. Erstellen Sie ein neues Spaltenformat, und legen Sie dessen Eigenschaften fest.

  3. Fügen Sie das Spaltenformat der Spaltenformatsammlung des Tabellenformats hinzu.

  4. Fügen Sie das Tabellenformat der Tabellenformatsammlung des Datenrasters hinzu.

  5. Erstellen Sie im folgenden Beispiel eine Instanz für den neuen DataGridTableStyle, und legen Sie dessen MappingName-Eigenschaft fest.

  6. Erstellen Sie eine neue Instanz von GridColumnStyle, und legen Sie den MappingName (und einige andere Layout- und Anzeigeeigenschaften) fest.

  7. Wiederholen Sie die Schritte 2 bis 6 für jedes Spaltenformat, das Sie erstellen möchten.

    Das folgende Beispiel veranschaulicht, wie eine DataGridTextBoxColumn erstellt wird, da ein Name in der Spalte angezeigt werden soll. Außerdem fügen Sie das Spaltenformat in die GridColumnStylesCollection des Tabellenformats ein, und Sie fügen das Tabellenformat der GridTableStylesCollection des Datenrasters hinzu.

    Private Sub CreateAuthorFirstNameColumn()  
       ' Add a GridTableStyle and set the MappingName
       ' to the name of the DataTable.  
       Dim TSAuthors As New DataGridTableStyle()  
       TSAuthors.MappingName = "Authors"  
    
       ' Add a GridColumnStyle and set the MappingName
       ' to the name of a DataColumn in the DataTable.
       ' Set the HeaderText and Width properties.
       Dim TCFirstName As New DataGridTextBoxColumn()  
       TCFirstName.MappingName = "AV_FName"  
       TCFirstName.HeaderText = "First Name"  
       TCFirstName.Width = 75  
       TSAuthors.GridColumnStyles.Add(TCFirstName)  
    
       ' Add the DataGridTableStyle instance to
       ' the GridTableStylesCollection.
       myDataGrid.TableStyles.Add(TSAuthors)  
    End Sub  
    
    private void addCustomDataTableStyle()  
    {  
       // Add a GridTableStyle and set the MappingName
       // to the name of the DataTable.  
       DataGridTableStyle TSAuthors = new DataGridTableStyle();  
       TSAuthors.MappingName = "Authors";  
    
       // Add a GridColumnStyle and set the MappingName
       // to the name of a DataColumn in the DataTable.
       // Set the HeaderText and Width properties.
       DataGridColumnStyle TCFirstName = new DataGridTextBoxColumn();  
       TCFirstName.MappingName = " AV_FName";  
       TCFirstName.HeaderText = "First Name";  
       TCFirstName.Width = 75;  
       TSAuthors.GridColumnStyles.Add(TCFirstName);  
    
       // Add the DataGridTableStyle instance to
       // the GridTableStylesCollection.
       dataGrid1.TableStyles.Add(TSAuthors);  
    }  
    
    private:  
       void addCustomDataTableStyle()  
       {  
          // Add a GridTableStyle and set the MappingName
          // to the name of the DataTable.  
          DataGridTableStyle^ TSAuthors = new DataGridTableStyle();  
          TSAuthors->MappingName = "Authors";  
    
          // Add a GridColumnStyle and set the MappingName
          // to the name of a DataColumn in the DataTable.
          // Set the HeaderText and Width properties.
          DataGridColumnStyle^ TCFirstName = gcnew DataGridTextBoxColumn();  
          TCFirstName->MappingName = "AV_FName";  
          TCFirstName->HeaderText = "First Name";  
          TCFirstName->Width = 75;  
          TSAuthors->GridColumnStyles->Add(TCFirstName);  
    
          // Add the DataGridTableStyle instance to
          // the GridTableStylesCollection.
          dataGrid1->TableStyles->Add(TSAuthors);  
       }  
    

Weitere Informationen