C# 组合框selectedvalue

C# 组合框selectedvalue,c#,winforms,combobox,C#,Winforms,Combobox,我的表单上有一个组合框(winforms)。在属性中,我设置了DisplayMember和ValueMember。DisplayMember=Name和ValueMember=ID。组合框中填充了以下对象: public class MyObj { public string Name { get; set; } public int ID { get; set; } } 该名称在下拉列表

我的表单上有一个组合框(winforms)。在属性中,我设置了DisplayMember和ValueMember。DisplayMember=Name和ValueMember=ID。组合框中填充了以下对象:

public class MyObj
    {
        public string Name
        {
            get; set;
        }

        public int ID { get; set; }
    }
该名称在下拉列表中显示良好(因此DisplayMember正在工作),但是,当我执行以下操作时:

mycombobox.SelectedValue它始终为空

有人知道我忘了做什么吗?

试试选择编辑

MyObj obj = (MyObj)mycombobox.SelectedItem;

您是否设置了
DataSource
属性。还要确保您必须按照正确的顺序设置它们-

按以下顺序设置:

1. DisplayMember
2. ValueMember
3. DataSource
请参阅此链接-


或者,您可以使用
SelectedItem
属性获取所选的
MyObj
实例。

是否已选择项目?“选定”并不总是与“可见”相同。也许你真的想修改mycombox.Text。

我也有类似的错误。我设置了DisplayMember和ValueMember,但我设置了而不是DataSource项。插入。

您在哪里选中了mycombobox。SelectedValue?它位于按钮的单击事件上。我也尝试过在组合框本身的SelectedIndexChanged事件中检查它,但在那里也不起作用。如果你选择了SelectedIndex或SelectedItem,你会得到什么?您可以添加组合框配置和填充方式的代码吗?尝试交换ID和名称:
displaymber=ID
ValueMember=Name
并查看ID是否在下拉列表中显示良好,以确保您的数据源正常。我设置了displaymber=ID,它显示的ID很好。谢谢,最后我只是使用了SelectedItem属性和casting。谢谢您的订单评论!节省了我这么多时间!