2017-01-15 4 views
0

Ich verwende ein DataGridView-Steuerelement in VB.Net, und eine der Spalten ist eine ungebundene DataGridViewComboBoxColumn.Kombinationswert aus DataGridViewComboBoxColumn & Zeilenindex aus DataGrid abrufen

Der Benutzer kann einen der 4 Einträge im Kombinationsfeld auswählen. Ich muss feststellen, was der Inhalt/Auswahl der Combo-Box tatsächlich ist. Derzeit kann ich diesen Inhalt nicht abrufen.

Ich habe versucht, die AddHandler combo.SelectionChangeCommitted() wie in einer der anderen Fragen auf dieser Website empfohlen, aber keine Param zu diesem Ereignis (ByVal Absender Als System.Object, ByVal e As System.EventArgs), wird es mir ermöglichen, die tatsächliche Zeile des Datagrids abzurufen, in dem sich dieses Kombinationssteuerelement befindet.

Dies ist wichtig, weil der Zeilenindex des Rasters der Schlüssel zum zugehörigen Eintrag in meinem Dictionary-Objekt ist.

Antwort

1

Nach dem, was Sie gesagt haben und Ihre Frage Titel (die Comboboxen sind alle ausgewählten):

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

Dank - das ist hilfreich. ... jedoch wird dieses Ereignis ausgelöst, wenn der Benutzer in eine andere Gitterreihe wechselt ... Der Benutzer wird alle Combo-Änderungen vornehmen, bevor er den BOT aktiviert. Einmal aktiviert, wenn die refresh() - Routine aufgerufen wird, würde ich gerne in der Lage sein, die Gitterzeilen einzeln nacheinander durchzugehen und den Wert jedes Combos abzufragen. – user6167266

+0

@ user6167266, Sie haben dies nicht deutlich erwähnt. Sieh dir jetzt meinen Schnitt an, du musst zuerst die Zelle übernehmen. – LuckyLuke82

+0

Ich sehe nicht, wie es mir ermöglicht wird, den Zellenwert in der beschriebenen Routine abzurufen ... wie ich erwähnt habe, durchläuft der Code alle Zeilen im DataGrid und ruft die Zellenwerte ab .... – user6167266

Verwandte Themen