2017-02-22 1 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を表示したいと思います。コンボボックスショーの値のメンバー

答えて

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を使って確認することができます。これはテストされたコードです。

希望します。

関連する問題