Obtenir le 'SelectedIndex' d'un ComboBox dans un DataGridView
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 :aie:
voici une solution simple :)
Code:
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 |
Grille est un DataGridView de 'n' colonnes et 'm' lignes.
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+