Comment : exécuter une action personnalisée basée sur les modifications apportées dans une cellule d'un contrôle DataGridView Windows Form

Mise à jour : novembre 2007

Le contrôle DataGridView a plusieurs événements que vous pouvez utiliser pour détecter des modifications dans l'état des cellules DataGridView. Deux événements parmi les plus communément utilisés sont CellValueChanged et CellStateChanged.

Pour détecter des modifications dans les valeurs des cellules DataGridView

  • Ajoutez un gestionnaire pour l'événement 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");
    }
    

Pour détecter des modifications dans les états des cellules DataGridView

  • Ajoutez un gestionnaire pour l'événement 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");
    }
    

Compilation du code

Cet exemple nécessite les éléments suivants :

  • Un contrôle DataGridView nommé dataGridView1. Pour C#, les gestionnaires d'événements doivent être connectés aux événements correspondants.

  • Références aux assemblys System et System.Windows.Forms.

Voir aussi

Tâches

Procédure pas à pas : validation des données dans le contrôle DataGridView Windows Forms

Référence

DataGridView

DataGridView.CellValueChanged

DataGridView.CellStateChanged

Autres ressources

Programmation avec les cellules, lignes et colonnes dans le contrôle DataGridView Windows Forms