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

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

最佳答案

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

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

sizeBox.Items.Clear();

一旦 sizeBox 选择的索引发生更改,您就可以添加项目。我会简单地使用:

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

为了获得良好的实践,我会删除魔术字符串的使用,也许将它们放入返回适当字符串的产品帮助程序类中。

关于C# Windows 窗体如何根据第一个组合框中的选择更改第二个组合框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936175/

相关文章:

java - 如何在 Vaadin 中迭代 ComboBox?

c# - WinForm 组合框控件 DotNet 4.8 中的错误 - VS2019

c# - 如何从 exe 返回值并使用 C# 捕获返回值

c# - Winforms Bindingsource Datamember 属性界面什么都不显示

c# - 如何在WinForms中模拟下拉窗口?

c# - 将 WPF 组合框 ItemsSource 绑定(bind)到字符串数组时出错

c# - 创建一个表示两个其他对象之间的值差异的对象

C#:Cdecl DllExport,参数中带有指向类实例的指针

c# - 保留元素的排序列表,按该元素外部的属性排序

c# - Combobox.Visible 属性不起作用