C#Windows Forms如何根据第一个组合框中的选择更改第二个组合框的值

时间:2015-06-19 10:43:50

标签: c# winforms combobox

我正在尝试创建一个订单表格,因此我正在使用组合框,以便让用户选择要订购的商品。因此,当用户选择将要订购的商品时,第二个组合框应该更改为可以订购特定商品的尺寸。我已经填写了第二个组合框,其中包含所有商品的尺寸,但我是不确定如何限制所选项目的大小。我已经尝试将if语句添加到第二个组合框的addRange,但这只是复制了组合框末尾的项目。任何可以给予的帮助将不胜感激。感谢

   private void itemBox_SelectedIndexChanged(object sender, EventArgs e)
   {
        switch (((ComboBox)sender).SelectedItem as string)
        {
            case "Name in a Frame":
                sizeBox.SelectedIndex = 0;
                break;
            case "Scrabble Frame":
                sizeBox.SelectedIndex = 1;
                break;
            case "Plaque":
                sizeBox.SelectedIndex = 2;
                break;
            case "Hearts":
                sizeBox.SelectedIndex = 3;
                break;
            case "Now and Forever Print":
                sizeBox.SelectedIndex = 4;
                break;
            case "Pat cushion":
                sizeBox.SelectedIndex = 5;
                break;
            case "Emilia cushion":
                sizeBox.SelectedIndex = 6;
                break;
        }
    }

    private void sizeBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (sizeBox.SelectedIndex == 0)
        {
            this.sizeBox.Items.AddRange(new object[]{
                "7x5",
                "10x8",
                "A4",
                "Mug"
            });
        }
    }

1 个答案:

答案 0 :(得分:3)

您可以直接从itemBox选择的更改事件处理程序填充sizeBox集合,并完全删除sizeBox_SelectedIndexChanged

但是,为了达到目的,您需要在选择项目后清除sizeBox中的项目。您可以通过以下方式实现此目的:

sizeBox.Items.Clear();

然后,您可以在sizeBox选择的索引更改后添加项目。我只想使用:

sizeBox.Items.Add("New Size");

为了良好的练习,我会删除魔术字符串的使用,也可以将它们放在Product helper类中,返回相应的字符串。