Festlegen von Standardzellenformaten für das DataGridView-Steuerelement in Windows Forms

Mit dem DataGridView-Steuerelement können Sie Standardzellenstile für das gesamte Steuerelement und für bestimmte Spalten und Zeilen angeben. Diese Standardeinstellungen werden von der Steuerelementebene bis herunter auf die Spaltenebene, dann auf die Zeilenebene und anschließend auf die Zellenebene gefiltert. Wenn eine bestimmte DataGridViewCellStyle-Eigenschaft nicht auf Zellenebene festgelegt wird, wird die Standardeigenschaftseinstellung auf Zeilenebene verwendet. Wenn die Eigenschaft auch nicht auf Zeilenebene festgelegt wird, wird die Standardspalteneinstellung verwendet. Schließlich, wenn die Eigenschaft auch nicht auf Spaltenebene festgelegt ist, wird die Standardeinstellung DataGridView verwendet. Mit dieser Einstellung können Sie vermeiden, dass Sie die Eigenschafteneinstellungen auf mehreren Ebenen duplizieren müssen. Geben Sie auf jeder Ebene einfach die Stile an, die sich von den darüber liegenden Ebenen unterscheiden. Weitere Informationen finden Sie unter Zellenstile im DataGridView-Steuerelement in Windows Forms.

Es gibt umfangreiche Unterstützung für diese Aufgabe in Visual Studio. Weitere Informationen finden Sie auch unter Festlegen von Standardzellenstilen und -datenformaten für das DataGridView-Steuerelement in Windows Forms mithilfe des Designers.

So legen Sie Standardzellenstile programmgesteuert fest

  1. Legen Sie die Eigenschaften des DataGridViewCellStyle-Objekts fest, das über die Eigenschaft DataGridView.DefaultCellStyle abgerufen wurde.

    this.dataGridView1.DefaultCellStyle.BackColor = Color.Beige;
    this.dataGridView1.DefaultCellStyle.Font = new Font("Tahoma", 12);
    
    Me.dataGridView1.DefaultCellStyle.BackColor = Color.Beige
    Me.dataGridView1.DefaultCellStyle.Font = New Font("Tahoma", 12)
    
  2. Erstellen und initialisieren Sie neue DataGridViewCellStyle-Objekte für die Verwendung durch mehreren Zeilen und Spalten.

    DataGridViewCellStyle highlightCellStyle = new DataGridViewCellStyle();
    highlightCellStyle.BackColor = Color.Red;
    
    DataGridViewCellStyle currencyCellStyle = new DataGridViewCellStyle();
    currencyCellStyle.Format = "C";
    currencyCellStyle.ForeColor = Color.Green;
    
    Dim highlightCellStyle As New DataGridViewCellStyle
    highlightCellStyle.BackColor = Color.Red
    
    Dim currencyCellStyle As New DataGridViewCellStyle
    currencyCellStyle.Format = "C"
    currencyCellStyle.ForeColor = Color.Green
    
  3. Legen Sie die Eigenschaft DefaultCellStyle bestimmter Zeilen und Spalten fest.

    this.dataGridView1.Rows[3].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Rows[8].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle =
        currencyCellStyle;
    this.dataGridView1.Columns["TotalPrice"].DefaultCellStyle =
        currencyCellStyle;
    
    With Me.dataGridView1
        .Rows(3).DefaultCellStyle = highlightCellStyle
        .Rows(8).DefaultCellStyle = highlightCellStyle
        .Columns("UnitPrice").DefaultCellStyle = currencyCellStyle
        .Columns("TotalPrice").DefaultCellStyle = currencyCellStyle
    End With
    

Beispiel

private void SetDefaultCellStyles()
{
    this.dataGridView1.DefaultCellStyle.BackColor = Color.Beige;
    this.dataGridView1.DefaultCellStyle.Font = new Font("Tahoma", 12);

    DataGridViewCellStyle highlightCellStyle = new DataGridViewCellStyle();
    highlightCellStyle.BackColor = Color.Red;

    DataGridViewCellStyle currencyCellStyle = new DataGridViewCellStyle();
    currencyCellStyle.Format = "C";
    currencyCellStyle.ForeColor = Color.Green;

    this.dataGridView1.Rows[3].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Rows[8].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle =
        currencyCellStyle;
    this.dataGridView1.Columns["TotalPrice"].DefaultCellStyle =
        currencyCellStyle;
}
Private Sub SetDefaultCellStyles()

    Dim highlightCellStyle As New DataGridViewCellStyle
    highlightCellStyle.BackColor = Color.Red

    Dim currencyCellStyle As New DataGridViewCellStyle
    currencyCellStyle.Format = "C"
    currencyCellStyle.ForeColor = Color.Green

    With Me.dataGridView1
        .DefaultCellStyle.BackColor = Color.Beige
        .DefaultCellStyle.Font = New Font("Tahoma", 12)
        .Rows(3).DefaultCellStyle = highlightCellStyle
        .Rows(8).DefaultCellStyle = highlightCellStyle
        .Columns("UnitPrice").DefaultCellStyle = currencyCellStyle
        .Columns("TotalPrice").DefaultCellStyle = currencyCellStyle
    End With

End Sub

Code kompilieren

In diesem Beispiel ist Folgendes erforderlich:

Robuste Programmierung

Um maximale Skalierbarkeit zu erzielen, wenn Sie mit sehr großen Datensätzen arbeiten, sollten Sie DataGridViewCellStyle Objekte für mehrere Zeilen, Spalten oder Zellen freigeben, die dieselben Formatvorlagen verwenden, anstatt die Formateigenschaften für einzelne Elemente separat festzulegen. Darüber hinaus sollten Sie freigegebene Zeilen erstellen und auf diese zugreifen, indem Sie die Eigenschaft DataGridViewRowCollection.SharedRow verwenden. Weitere Informationen finden Sie unter Bewährte Methoden für das Skalieren des DataGridView-Steuerelements in Windows Forms.

Siehe auch