Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 使用ValueMember属性的值_Vb.net_Winforms - Fatal编程技术网

Vb.net 使用ValueMember属性的值

Vb.net 使用ValueMember属性的值,vb.net,winforms,Vb.net,Winforms,我试图检索存储在组合框的“ValueMember”属性中的值。我听从了以下帖子的建议: 不幸的是,它不起作用。下面是我的代码: Private Sub LoadCategoryCombo() Dim ds As New DataSet ds = GetCategoryData() If Not IsNothing(ds) Then cmbCategory.DataSource = ds.Tables(0) cmbCategory.Dis

我试图检索存储在组合框的“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”。我做错了什么


谢谢,

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

Dim valueMemberValue = cmbCategory.SelectedValue.ToString()
属性it只是要从中检索值的列的名称,而DiplayMember是要从中填充items集合的列的名称。

因此,在设置ValueMember时,当用户从Items集合中选择其他项时,您会告诉ComboBox更新其Value属性。组合框查看所选项目的同一行中存在的对应值,但在通过ValueMember属性命名的列中,您应该使用属性值而不是ValueMember

Dim valueMemberValue = cmbCategory.SelectedValue.ToString()
属性it只是要从中检索值的列的名称,而DiplayMember是要从中填充items集合的列的名称。

因此,在设置ValueMember时,当用户从Items集合中选择其他项时,您会告诉ComboBox更新其Value属性。组合框查看所选项目的同一行中,但通过ValueMember属性命名的列中的相应值

使用WPF或WinForms…标记此问题,无论是否合适。使用WPF或WinForms…标记此问题,无论是否合适。