Combobox显示价值成员


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。任何想法?

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

创建类似和覆盖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即可验证。这是测试的代码。

希望它有帮助。

最新更新