【问题标题】:Combobox selectedvalue组合框选定值
【发布时间】:2011-05-23 10:48:37
【问题描述】:

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

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

        public int ID { get; set; }
    }

名称在下拉列表中显示正常(因此 DisplayMember 正在工作)但是,当我这样做时:

mycombobox.SelectedValue 它始终为空。

有谁知道我是否忘记做某事?

【问题讨论】:

  • 你在哪里查看mycombobox.SelectedValue
  • 在按钮的点击事件上。我也尝试在组合框本身的 SelectedIndexChanged 事件上检查它,但它在那里也不起作用。
  • 如果你做 SelectedIndex 或 SelectedItem 你会得到什么?你能添加如何配置和填充组合框的代码吗?
  • 尝试交换 ID 和名称:DisplayMember = IDValueMember = Name 并查看 ID 是否在下拉列表中显示正常,以确保您的数据源正常。
  • 我设置了 DisplayMember = ID,它显示的 ID 就好了。

标签: c# winforms combobox


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    是否选择了一个项目?选定并不总是与可见相同。也许你真的想要 mycombobox.Text。

    【讨论】:

      【解决方案3】:

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

      按以下顺序设置它们 -

      1. DisplayMember
      2. ValueMember
      3. DataSource
      

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

      您也可以使用SelectedItem 属性来获取选定的MyObj 实例。

      【讨论】:

      • 谢谢,我最终只使用了 SelectedItem 属性和强制转换。
      • 感谢您的订单评论!为我节省了很多时间!
      【解决方案4】:

      试试 SelectedItem

      MyObj obj = (MyObj)mycombobox.SelectedItem;
      

      【讨论】:

        猜你喜欢
        • 2013-08-15
        • 2014-03-23
        • 2013-10-27
        • 2011-08-01
        • 2011-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多