2010-12-10 64 views
4

我的窗体上有一个组合框(winforms)。在属性中,我设置了DisplayMember和ValueMember。 DisplayMember = Name和ValueMember = ID。组合框填入下列对象:Combobox selectedvalue

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

     public int ID { get; set; } 
    } 

的名称将显示在下拉罚款(所以DisplayMember工作),但是,当我做:

mycombobox.SelectedValue它总是空。

有谁知道我是否忘记做任何事情?

+0

你在哪里检查'mycombobox.SelectedValue'? – Bolu 2010-12-10 11:47:30

+0

这是一个按钮的点击事件。我也尝试在组合框的SelectedIndexChanged事件上检查它,但它在那里也不工作。 – AndrewC 2010-12-10 11:50:07

+0

如果你做SelectedIndex或SelectedItem,你会得到什么?你可以添加组合框的配置和填充代码吗? – 2010-12-10 11:50:18

回答

4

你有没有设置DataSource属性。另外,还要确保你必须设置他们在正确的顺序 -

以下顺序设置它们 -

1. DisplayMember 
2. ValueMember 
3. DataSource 

请参阅此链接 - http://social.msdn.microsoft.com/Forums/en/winformsdatacontrols/thread/211a46f5-5971-4ea2-a61d-84e389360909

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

+0

谢谢,我结束了刚刚使用SelectedItem属性和铸造。 – AndrewC 2010-12-10 12:03:06

+0

感谢您的订单评论!为我节省了很多时间! – 2012-03-22 16:11:47

0

尝试的SelectedItem

MyObj obj = (MyObj)mycombobox.SelectedItem; 
0

已选择一个条目?选中并不总是一样的可见。也许你真的想要mycombobox.Text。

0

我也有类似的错误。我设置了DisplayMember和ValueMember,但我设置了而不是DataSource Items.Insert。

相关问题