e.rowindex n'a pas la valeur attendue dans l’évent du Datagridview CellEndEdit.
Bonjour à tous ,
J'ai encore un petit problème :
Je cherche à valider le contenu d'une cellule lorsque l'utilisateur à terminé la saisie complète du texte dans la cellule. Je tente d'utiliser pour cela le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Private Sub DataGridViewMain_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridViewMain.CellEndEdit
Dim ColName As String = DataGridViewMain.Columns(e.ColumnIndex).Name
Dim key As Integer = CInt(ValuefromDB(DataGridViewMain.Rows(e.RowIndex).Cells("Key").Value))
Dim Value As Object = ValuefromDB(DataGridViewMain.Rows(e.RowIndex).Cells(e.ColumnIndex).Value)
Select Case ColName
Case "Repere"
Dim NewRepere As String = CType(Value, String)
If _Projet.Segments.DicoRepere.ContainsKey(NewRepere) Then
MessageBox.Show(String.Format("le Repere {0} existe déja dans la collection, l'opération va être annulée", NewRepere), "Repere existant", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
_Projet.Segments(key).Repere = CType(Value, String)
End If
End Select
End Sub |
Le problème c'est que j'au un tri automatique justement sur la colonne qui contient la cellule que je veux éditer et valider, et les valeurs que j'obtient correspondent aux valeurs de la ligne qui vient en remplacement de ma ligne en cours d’édition une fois le trie effectué.
Je ne comprends pas du tout ce comportement. Lorsque je suis dans l'event de EndEdit de la cellule je m'attends à obtenir un e.rowindex qui me permet de lire la dite cellule....hors ce n'st pas le cas.
Pouvez vous m'aider et m'expliquer un peu ce qui se passe...