Bonjour tous le monde ,
Je fais appel à votre aide car je bloque sur ce problème et malgré mes recherches, je ne trouve pas la solution. Si quelqu'un pouvais me débloquer ce serais sympa.
J'ai un DataGridView présentant deux colonnes. Le première présente des moyens de contacts (téléphone, mails ...) et est ReadOnly. La deuxième est elle destinée à l'encodage de ces moyens de contacts (le numéro de téléphone, l'adresse email ...). En fait, je voudrais sélectionner une cellule et la rendre active afin de pouvoir y encoder des données. Remarque importante, pour passer d'une cellule d'encodage de mon DataGridView à l'autre j'utilise la touche tabulation pour passer à la cellule suivante.
Voici mon code actuel:
Le code semble marcher et me sélectionne bien la cellule se trouvant en dessous de la première. La ou cela ne va plus, c'est qu'il me sélectionne la cellule mais ne la rend pas active en modification. En fait je constate que c'est la cellule de la première colonne contenant l'intitulé du moyen de communication qui semble être sélectionnée alors que si je fais un test demandant la cellule active, c'est celle destinée à l'encodage qui est apparement active. Par ailleurs c'est bien cette dernière qui en surbrillance mais dans laquelle je ne peux rien encoder !
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 Private Sub dgvMoyensTelecommunication_EditingControlShowing(sender As Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles dgvMoyensTelecommunication.EditingControlShowing editingMode = True End Sub Private Sub dgvMoyensTelecommunication_SelectionChanged(sender As Object, e As System.EventArgs) Handles dgvMoyensTelecommunication.SelectionChanged Dim r As Integer Dim c As Integer If editingMode Then r = dgvMoyensTelecommunication.CurrentCell.RowIndex c = dgvMoyensTelecommunication.CurrentCell.ColumnIndex c += 1 If c = dgvMoyensTelecommunication.ColumnCount Then r += 1 c = 2 End If editingMode = False dgvMoyensTelecommunication.CurrentCell = dgvMoyensTelecommunication(c, r) End If End Sub
Comme une image est parfois plus parlante, voici une illustration de mon DataGridView et de ce qui se produit.
Quelqu'un peut-il m'aider car cela fais un moment que je bloque la-dessus ?!
J'espère que je ne suis pas trop confus dans mes explications.
Merci d'avance.
Partager