1

我正在尝试检索存储在组合框的“ValueMember”属性中的值。我遵循了以下帖子中的建议:如何从 ComboBox C# Winforms 中获取 ValueMember 值?

不幸的是,它不起作用。下面是我的代码:

Private Sub LoadCategoryCombo()
    Dim ds As New DataSet

    ds = GetCategoryData()

    If Not IsNothing(ds) Then
        cmbCategory.DataSource = ds.Tables(0)
        cmbCategory.DisplayMember = "category"
        cmbCategory.ValueMember = "abbrev"
    End If
End Sub

我想要做的是当我从下拉列表中选择一个值时,我希望显示存储在“ValueMember”字段中的值,但是,它只显示“abbrev”。我究竟做错了什么?

谢谢,

4

1 回答 1

6

您应该使用属性 Value 而不是 ValueMember

Dim valueMemberValue = cmbCategory.SelectedValue.ToString()

属性ValueMember它只是您要从中检索值的列的名称,而 DiplayMember 是您要从中填充项目集合的列的名称。
因此,设置 ValueMember 时,您告诉 ComboBox 在用户从 Items 集合中选择不同的项目时更新其 Value 属性。该组合查看存在于所选项目的同一行中但位于通过 ValueMember 属性命名的列中的相应值

于 2013-08-02T14:53:42.913 回答