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 :

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
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
DGV_SaisieNoms.CurrentCell = DGV_SaisieNoms(e.ColumnIndex + 1, e.RowIndex)
et :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DGV_SaisieNoms.CurrentCell = DGV_SaisieNoms(e.ColumnIndex - 1, e.RowIndex + 1)
Merci d'avance à qui pourra m'éclairer sur l'origine du problème et sur la solution