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
Zebrette
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
Partager