Gewusst wie: Ausführen einer benutzerdefinierten Aktion aufgrund von Änderungen in einer Zelle des DataGridView-Steuerelements in Windows Forms

Das DataGridView-Steuerelement verfügt über eine Reihe von Ereignissen, mit denen Sie Änderungen am Zustand von DataGridView-Zellen erkennen können. Zwei der am häufigsten verwendeten Ereignisse sind das CellValueChanged-Ereignis und das CellStateChanged-Ereignis.

So erkennen Sie Änderungen an den Werten von DataGridView-Zellen

  • Schreiben Sie einen Handler für das CellValueChanged-Ereignis.

    Private Sub dataGridView1_CellValueChanged(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles dataGridView1.CellValueChanged
    
        Dim msg As String = String.Format( _
            "Cell at row {0}, column {1} value changed", _
            e.RowIndex, e.ColumnIndex)
        MessageBox.Show(msg, "Cell Value Changed")
    
    End Sub
    
    private void dataGridView1_CellValueChanged(object sender,
        DataGridViewCellEventArgs e)
    {
        string msg = String.Format(
            "Cell at row {0}, column {1} value changed",
            e.RowIndex, e.ColumnIndex);
        MessageBox.Show(msg, "Cell Value Changed");
    }
    

So erkennen Sie Änderungen an den Zuständen von DataGridView-Zellen

  • Schreiben Sie einen Handler für das CellStateChanged-Ereignis.

    Private Sub dataGridView1_CellStateChanged(ByVal sender As Object, _
        ByVal e As DataGridViewCellStateChangedEventArgs) _
        Handles dataGridView1.CellStateChanged
    
        Dim state As DataGridViewElementStates = e.StateChanged
        Dim msg As String = String.Format( _
            "Row {0}, Column {1}, {2}", _
            e.Cell.RowIndex, e.Cell.ColumnIndex, e.StateChanged)
        MessageBox.Show(msg, "Cell State Changed")
    
    End Sub
    
    private void dataGridView1_CellStateChanged(object sender,
        DataGridViewCellStateChangedEventArgs e)
    {
        DataGridViewElementStates state = e.StateChanged;
        string msg = String.Format("Row {0}, Column {1}, {2}",
            e.Cell.RowIndex, e.Cell.ColumnIndex, e.StateChanged);
        MessageBox.Show(msg, "Cell State Changed");
    }
    

Kompilieren des Codes

Dieses Beispiel setzt Folgendes voraus:

  • Ein DataGridView-Steuerelement mit dem NamendataGridView1 muss vorhanden sein. Für C# müssen die Ereignishandler mit den entsprechenden Ereignissen verbunden werden.

  • Verweise auf die System-Assembly und die System.Windows.Forms-Assembly.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Validieren von Daten im DataGridView-Steuerelement in Windows Forms

Referenz

DataGridView

DataGridView.CellValueChanged

DataGridView.CellStateChanged

Weitere Ressourcen

Programmieren mit Zellen, Zeilen und Spalten im DataGridView-Steuerelement in Windows Forms