Après avoir perdu une heure à jouer avec les Events d'un DataGridView pour simuler un RowValueChanged Event qui n'est pas disponible par défault, je vous fait par de ma "solution" pour vous épargner la même peine:

Ca combine 2 événements: CellValueChanged & RowValidating

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
    Dim RowModified As Boolean = False
    Private Sub DataGridView1_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
        RowModified = True 'Enregistre qu'une cellule, quelque part, est modifiée
    End Sub
 
 
    Private Sub DataGridView1_RowValidating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.RowValidating
        If RowModified = True Then 'Si une cellule quelque part est modifié
            'Code à éxécuter:
            If LeChangementEstAccépté() Then
                RowModified = False 'ré-initialise pour changer de row
            Else
                e.Cancel = True
            End If
        End If
    End Sub
Zebrette