Bonjour
j'ai un DataGridView dont certaines colonnes sont de type 'liste déroulante'
j'ai cherché longtemps comment récupérer le 'SelectedIndex' pour une cellule donnée... je ne suis pas le seul à m'être posé la question
voici une solution simple
Grille est un DataGridView de 'n' colonnes et 'm' lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Private Function Grille_GetSelectedIndex(c As Integer, r As Integer) As Integer Dim col As DataGridViewComboBoxColumn If Grille.Item(c, r).Value Is Nothing Then Grille_GetSelectedIndex = -1 Else col = E5_Grille.Columns(c) Grille_GetSelectedIndex = col.Items.IndexOf(Grille.Item(c, r).Value) End If End Function
Il faut appeler la fonction Grille_GetSelectedIndex(c , r) avec 'c' le n° de la colonne (de 0 à n-1) et 'r' le n° de la ligne (de 0 à m-1); bien entendu 'c' doit correspondre à une colonne de type liste déroulante.
Si vous avez plusieurs DataGridView, modifiez la fonction pour que Grille soit passé en paramètre.
La fonction renvoie -1 si aucune entrée de la liste déroulante n'est sélectionné, ce comportement est le même que VB5 et VB6 ce qui peut aider beaucoup si vous devez utiliser du code ancien.
A+
Partager