繁体   English   中英

C#更改标签取决于ComboBox选定的索引

[英]C# Change label depending of ComboBox Selected Index

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

我该如何改善它并缩短它? 有人告诉我使用对象数组,但是如何验证选择了哪个项目?

这是使用列表使代码更短的示例:

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];
    }

由于列表从索引零开始,而组合框从索引零开始,因此您只需调用列表的索引即可与组合框的索引匹配。

您可以对组合框进行初始化(将其放置在表单的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();
}

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM