我想根据comboBox中选择的项目在标签中显示某些值,comboBox中的每个项目都会显示不同的值,问题是comboBox有很多项目,每个项目需要显示不同的值
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBox.SelectedIndex)
{
case 0:
if (comboBox.SelectedIndex == 0)
{
Label.Text = "8";
}
break;
case 1:
if (comboBox.SelectedIndex == 1)
{
Label.Text = "15";
}
break;
case 2:
if (comboBox.SelectedIndex == 2)
{
Label.Text = "60";
}
break;
}
}
如何改善这一点并缩短时间?有人告诉我使用对象数组但是如何验证选择了哪个项目?
答案 0 :(得分:1)
这是使用List缩短代码的示例:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
IList<string> lstString = new List<string>();
lstString.Add("Hello");
lstString.Add("World");
lstString.Add("Foo");
lstString.Add("C#");
lstString.Add("StackOverflow");
label1.Text = lstString[comboBox1.SelectedIndex];
}
由于列表从索引0开始,而combobox从索引0开始,你只需调用列表的索引即可与组合框的索引匹配。
答案 1 :(得分:0)
你可以对你的组合框进行初始化。(把它放在load
形式的事件或其他地方取决于你的需要。)
var listCombo = new List<int>();
listCombo.Add(8);
listCombo.Add(15);
listCombo.Add(60);
listCombo.ForEach(m => comboBox1.Items.Add(m.ToString()));
然后您可以在组合框的事件代码
中分配标签中的所选项目private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = comboBox1.SelectedItem.ToString();
}