sachsenhessi
Goto Top

DataGridViewComboBoxColumn - DatagridView

Hallo @all,

ich stehe mal wieder auf dem Schlauch face-sad

Ich habe ein DGV, dem eine DataGridViewComboBoxColumn zugefügt wird.
    Dim _colColumnProdukt As New DataGridViewComboBoxColumn

            _colColumnProdukt.DataSource = dtProduktAuswahl         'ist ein DataTable  
            _colColumnProdukt.ValueMember = "lfdID"         'Name der Spalte in Datatable, die den "Rückgabewert" enthält  
            _colColumnProdukt.DisplayMember = "Anzeige"          'Name der Spalte in Datatable, die angezeigt werden soll  
            _colColumnProdukt.DataPropertyName = "lfdID"         'Name der Spalte in Datatable, die den "Rückgabewert" enthält  
            _colColumnProdukt.HeaderText = "Produkt"  
            _colColumnProdukt.Name = "Produkt"  
            _colColumnProdukt.DisplayIndex = 0
            _colColumnProdukt.Frozen = True

            dgvProduktAuswahl.Columns.Add(_colColumnProdukt)   
Nun brauche ich aber, sobald die Zelle mit dieser Combobox verlassen wird, den Wert von "lfdNr" des gewählten Wertes der ComboBoxZelle.
Eigentlich sollte das ja mit VALUE gehen. (Cells.Value sollte da ja den "Inhalt" von ValueMember enthalten)
    Private Sub dgvProduktAuswahl_CellLeave(sender As Object, e As DataGridViewCellEventArgs) Handles dgvProduktAuswahl.CellLeave
        MessageBox.Show(dgvProduktAuswahl.CurrentRow.Cells("Produkt").Value, "Test")  
    End Sub
Leider liefert es Nothing, obwhl in "lfdNr" eine LONG steht.

Umgebung: VS2015 ComunityEdition / WinForm / Framework 4.5 / das GDV selber ist ungebunden.

Irgendestwas blicke ich gerade hier nicht, und bitte Euch um Hilfe.

Danke schon mal im Voraus

Frank

Content-ID: 321288

Url: https://administrator.de/forum/datagridviewcomboboxcolumn-datagridview-321288.html

Ausgedruckt am: 22.12.2024 um 09:12 Uhr

atze187
atze187 18.11.2016 aktualisiert um 08:52:17 Uhr
Goto Top
Hi,

erzeuge die Combobox-Einträge per Hand, dann sollte das klappen.

EDIT: Wobei ich mich frage, warum du kein Binding für das Grid selber benutzt. Du brauchst halt nur ein ordenltiches Datenmodell.

Gruß,
André
131381
131381 22.11.2016 aktualisiert um 17:39:45 Uhr
Goto Top
Hi Frank,
das liegt daran das beim Event CellLeave der Inhalt der Zelle noch nicht verändert wurde bzw. das Event bei dem der Wert tatsächlich geändert wird erst nach CellLeave auftritt. Nimm mal CellValueChanged dann bekommst du auch den aktuellen Wert der Combobox.

Gruß

erzeuge die Combobox-Einträge per Hand, dann sollte das klappen.
face-big-smile jo mei. Ist hier aber nicht der Sinn der Frage ...