【问题标题】:Combobox show value member组合框显示值成员
【发布时间】:2017-02-22 11:11:44
【问题描述】:
private class Item
{
    public string Name;
    public string Value;
    public Item(string name, string value)
    {
        Name = name; Value = value;
    }

    cmb_1.Items.Add(new Item("mykonos", "1"));
    cmb_1.Items.Add(new Item("Paros", "2"));
    cmb_1.Items.Add(new Item("Nobugz", "666"));

我有这个代码。例如,当我从 ComboBox 中选择“mykonos”时,我想显示第 1 个对话框。有什么想法吗?

【问题讨论】:

    标签: c# winforms visual-studio datepicker


    【解决方案1】:

    cmb_1.SelectedItem 是 Item 对象。

            Item selectedItem = cmb_1.SelectedItem as Item;
            if (selectedItem != null)
                MessageBox.Show(string.Format("selected Item value:{0}, name:{1}", selectedItem.Value, selecteItem.Name));
            else
                MessageBox.Show("no selected item");
    

    【讨论】:

    • 我再次编辑,因为我认为你的答案不是我想要的
    【解决方案2】:

    创建您的类并覆盖ToString() 方法以返回您想要的值。

        class Item
        {
            public string Text { get; set; }
            public object Value { get; set; }
            public override string ToString()
            {
                return Text;
            }
        }
    

    将项目添加到您的ComboBox

            cmb_1.Items.Add(new Item() { Text= "mykonos", Value="1" });
            cmb_1.Items.Add(new Item() { Text = "Paros", Value = "2" });
            cmb_1.Items.Add(new Item() { Text = "Nobugz", Value = "666" });
            cmb_1.SelectedIndex = 0;
    

    SelectedIndexChanged 事件处理程序中,执行以下操作:

        private void cmb_1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(cmb_1.SelectedItem!=null)
                MessageBox.Show((cmb_1.SelectedItem as Item).Value.ToString());
        }
    

    ShowDialog 不能像你想要的那样工作,它可以与Forms 一起工作。您可以简单地使用MessageBox.Show 进行验证。这是经过测试的代码。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多