bonjour à tous
Je fais appel une fois de plus à votre bonne volonté et à vos compétences.
J'ai un datagridview qui comporte 3 colonnes.
Je voudrais pouvoir selectionner la prochaine cellule où écrire en fonction de critères donnés.
Par exemple, si je valide la cellule colonne 0, ligne 1, je voudrais sélectionner la cellule colonne 1, ligne 1
Voilà un extrait de mon code :
Le problème est que le programme génère un System.StackOverFlow aux lignes :
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
19
20
21
22
23
24
25
26
27 Dim WithEvents DGV_SaisieNoms As New DataGridView With DGV_SaisieNoms ' ..................................... ' Instanciation du DataGridView ' ................................ End With Private Sub AssistanceSaisie(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) _ Handles DGV_SaisieNoms.CellValidated If DGV_SaisieNoms.Rows.Item(e.RowIndex).Cells.Item(0).Value <> "" And DGV_SaisieNoms.Rows.Item(e.RowIndex).Cells.Item(1).Value = "" Then ' Validation cellule colonne 0, ligne actuelle If e.ColumnIndex = 0 Then ' aller à colonne 1, ligne actuelle DGV_SaisieNoms.CurrentCell = DGV_SaisieNoms(e.ColumnIndex + 1, e.RowIndex) ' Validation cellule colonne 1, ligne actuelle ElseIf e.ColumnIndex = 1 Then ' écrire ? dans la cellule colonne 1, ligne actuelle DGV_SaisieNoms.Rows.Item(e.RowIndex).Cells.Item(1).Value = "?" ' aller à colonne 0, ligne suivante DGV_SaisieNoms.CurrentCell = DGV_SaisieNoms(e.ColumnIndex - 1, e.RowIndex + 1) End If End If End Sub
et :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DGV_SaisieNoms.CurrentCell = DGV_SaisieNoms(e.ColumnIndex + 1, e.RowIndex)
Merci d'avance à qui pourra m'éclairer sur l'origine du problème et sur la solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part DGV_SaisieNoms.CurrentCell = DGV_SaisieNoms(e.ColumnIndex - 1, e.RowIndex + 1)![]()
Partager