Procedura: eseguire un'azione personalizzata in base alle modifiche apportate a una cella di un controllo DataGridView di Windows Form

Il controllo DataGridView dispone di un numero di eventi che possono essere utilizzati per rilevare le modifiche apportate allo stato delle celle di un DataGridView. I due eventi utilizzati più di frequente sono CellValueChanged e CellStateChanged.

Per rilevare le modifiche dei valori delle celle di un DataGridView

  • Scrivere un gestore per l'evento CellValueChanged.

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

Per rilevare le modifiche degli stati delle celle di un DataGridView

  • Scrivere un gestore per l'evento CellStateChanged.

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

Compilazione del codice

L'esempio presenta i seguenti requisiti:

Vedere anche

Attività

Procedura dettagliata: convalida di dati nel controllo DataGridView Windows Form

Riferimenti

DataGridView

DataGridView.CellValueChanged

DataGridView.CellStateChanged

Altre risorse

Programmazione con celle, righe e colonne nel controllo DataGridView di Windows Form