Blocage suite à System.StackOverFlow
bonjour à tous :P
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:
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:
DGV_SaisieNoms.CurrentCell = DGV_SaisieNoms(e.ColumnIndex + 1, e.RowIndex)
et :
Code:
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 :D