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
即可验证。这是测试的代码。
希望它有帮助。