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

C#Windows窗体如何根据第一个组合框中的选择更改第二个组合框的值,c#,winforms,combobox,C#,Winforms,Combobox,我试图创建一个订单,因此我使用组合框让用户选择要订购的商品。因此,当用户选择要订购的项目时,第二个组合框应更改为特定项目可以订购的大小。我已经在第二个组合框中填入了所有项目的尺寸,但我不确定如何限制所选项目的尺寸。我曾尝试使用if语句将range添加到第二个组合框中,但这只是复制组合框末尾的项目。如果能在这方面给予任何帮助,我们将不胜感激。谢谢 private void itemBox_SelectedIndexChanged(object sender, EventArgs e)

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

   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"
            });
        }
    }

您可以直接从itemBox selected change事件处理程序中填充sizeBox集合,然后将
sizeBox\u SelectedIndexChanged
一起删除

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

sizeBox.Items.Clear();
一旦sizeBox选定索引发生更改,您就可以添加这些项。我只想使用:

sizeBox.Items.Add("New Size");
为了获得良好的实践效果,我将删除magic字符串的使用,可能会将它们放在一个返回适当字符串的Products helper类中