2017-01-15 3 views
0

J'utilise un contrôle DataGridView dans VB.Net et l'une des colonnes est un DataGridViewComboBoxColumn non lié.Récupérer la valeur de liste déroulante à partir de DataGridViewComboBoxColumn & Row index à partir de DataGrid

L'utilisateur peut sélectionner l'une des 4 entrées du contrôle combiné. Je dois déterminer le contenu/la sélection de la zone de liste déroulante. À l'heure actuelle, je suis incapable de récupérer ce contenu.

J'ai essayé d'utiliser l'AddHandler combo.SelectionChangeCommitted() comme conseillé sur l'une des autres questions soulevées sur ce site, mais aucun paramètre de cet événement (Expéditeur ByVal As System.Object, ByVal et As System.EventArgs), me permettra de récupérer la ligne réelle de la grille de données sur laquelle ce contrôle est activé.

Ceci est important car l'index de ligne de la grille est la clé de l'entrée associée dans mon objet Dictionary.

Répondre

1

D'après ce que vous avez dit et le titre de votre question (les boîtes combo sont tous sélectionnés):

Dim ComboValue As String 
    Dim ComboIndex As Integer 
    Dim MyDict As New Dictionary(Of String, Integer) 

    For i As Integer = 0 To My_DGV.SelectedCells.Count - 1 

     ComboIndex = My_DGV.SelectedCells.Item(i).RowIndex 
     ComboValue = My_DGV.Rows(ComboIndex).Cells("YourDatagridviewComboboxCell").Value 
     MyDict.Add(ComboValue, ComboIndex) 

    Next 
+0

Merci - qui est utile. ... cependant, cet événement se déclenche lorsque l'utilisateur se déplace vers une autre ligne de la grille ... l'utilisateur fera tous les changements de combo avant d'activer le BOT. Une fois activé, quand la routine refresh() est appelée, je voudrais pouvoir travailler à travers les lignes de grille une à la fois en interrogeant la valeur de chaque combo .... – user6167266

+0

@ user6167266, vous ne l'avez pas mentionné clairement. Jetez un oeil à mon édition maintenant, vous devez d'abord commettre de la cellule. – LuckyLuke82

+0

Je ne vois pas comment cela va me permettre d'extraire la valeur de la cellule dans la routine que j'ai décrite ... comme je l'ai mentionné, le code parcourt toutes les lignes du DataGrid et récupère les valeurs de la cellule .... – user6167266