2017-02-22 134 views
0
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号对话框。任何想法?Combobox显示值成员

回答

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"); 
+0

我再次编辑,因为我认为你的答案不是我想要的 –

0

创建你喜欢的类并覆盖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进行验证。这是测试代码。

希望它有帮助。