C#根据ComboBox Selected Index更改标签

时间:2017-04-18 03:20:58

标签: c# combobox selectedindexchanged

我想根据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;
         }
}                      

如何改善这一点并缩短时间?有人告诉我使用对象数组但是如何验证选择了哪个项目?

2 个答案:

答案 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();
}

enter image description here