2017-02-22 35 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")); 

У меня есть этот код. Когда я выбираю «mykonos», например, от ComboBox, я хотел бы показать диалог номер 1. Любые идеи?Комбинированный показатель стоимости

ответ

1

cmb_1.SelectedItem - предмет предмета.

 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 для проверки. Это проверенный код.

Надеюсь, это поможет.