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

Ich habe diesen Code. Wenn ich "mykonos" zum Beispiel von ComboBox wähle, möchte ich Dialog Nummer 1 zeigen. Irgendwelche Ideen?Combobox zeigen Wert Mitglied

Antwort

1

cmb_1.SelectedItem ist Objekt Objekt.

 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

Ich habe wieder bearbeitet, weil ich denke, dass Ihre Antwort nicht das ist, was ich will –

0

Erstellen Sie Ihre Klasse wie und außer Kraft setzen ToString() Methode, um die von Ihnen gewünschten Wert zurückzukehren.

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

hinzufügen Artikel zu Ihrem 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; 

Und innerhalb SelectedIndexChanged Event-Handler, dies zu tun:

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

ShowDialog nicht funktioniert, wie Sie wollen, ist es mit der funktioniert Forms. Sie können einfach MessageBox.Show zur Überprüfung verwenden. Dies ist ein getesteter Code.

Ich hoffe, es hilft.

Verwandte Themen