Freigeben über


Vorgehensweise: Ausführen einer benutzerdefinierten Aktion basierend auf Änderungen in einer Zelle eines Windows Forms DataGridView-Steuerelements

Das DataGridView Steuerelement verfügt über eine Reihe von Ereignissen, die Sie verwenden können, um Änderungen im Zustand von DataGridView Zellen zu erkennen. Zwei der am häufigsten verwendeten Ereignisse sind die CellValueChanged und CellStateChanged die Ereignisse.

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

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

    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");
    }
    
    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
    

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

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

    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");
    }
    
    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
    

Code kompilieren

In diesem Beispiel ist Folgendes erforderlich:

  • Ein DataGridView-Steuerelement namens dataGridView1 Für C# müssen die Ereignishandler mit den entsprechenden Ereignissen verbunden sein.

  • Verweise auf die Assemblys System und System.Windows.Forms

Siehe auch