0

実行時に datagridview(Mydgv1) が作成されます。その最初の列は編集可能なコンボ ボックス列です。表示メンバーと値メンバーを設定しましたが、正しい表示/値メンバーを取得できません。ドロップダウンからアイテムを選択すると、値/表示メンバーの値がドロップダウンの最後のアイテムの値/表示メンバーとして取得されます。値/表示メンバーがコンボで選択されたアイテムで変化しないのはなぜですかボックス列。

On Form Load Event

combo.HeaderText = "Item"
combo.Name = "itemid"
combo.Items.Clear()
Dim ds As SqlDataReader
Dim cmm As New SqlCommand("select itemid from itemdesc", con)
con.Open()
    ds = cmm.ExecuteReader
    If ds.HasRows Then
        While ds.Read
            combo.Items.Add(ds(0).ToString)
            combo.ValueMember = ds("itemid")
            combo.DisplayMember = ds("itemid")
        End While
    End If
con.Close()
Mydgv1.Columns.Add(combo)

On comboboxcolumn's Leave Event

it = combo.DisplayMember
MsgBox(it)
4

1 に答える 1

0

displaymember 自体を参照せず、SelectedIndexChanged イベントを使用して選択した値を取得する

Private Sub combo_SelectedIndexChanged(sender as Object, e as EventArgs) Handels combo.SelectedIndexChanged

    'because your display and valuemember are set as the same
    MsgBox(combo.SelectedValue.ToString)
    'if you want the displaymember as the result use
    MsgBox(combo.Text)

End Sub
于 2014-09-09T09:31:04.087 に答える