根据组合框4的选择筛选组合框5项



我想根据以前的组合框选择筛选我的组合框例如combobox4包含-鞋子,手表,电视。combobox5将包含-rockport,adddas//鞋款选择-tagheuer,劳力士//手表选择-索尼,三星//电视选择。

如果我要在combo4中选择电视,我希望combo5只过滤到电视选择

如果我使用了错误的术语,请提前道歉,我只是从C#开始

编辑目前,这些值是使用组合框属性-Items的实际表单设计设置的。如果需要,我可以更改并硬编码不使用任何sql。

对于我的解决方案,我决定使用代码而不是通过设计器绑定您的组合框。我认为这是最好的,因为它以后很容易编辑。

protected void bindMainComboBox()
{
comboBox1.Items.Clear();
comboBox1.Items.Add("Shoes");
comboBox1.Items.Add("Watches");
comboBox1.Items.Add("Tvs");
}

您将希望在表单加载时调用此函数。

public Form1()
{
InitializeComponent();
bindMainComboBox();
}

您将希望在第一个组合框上分配一个索引已更改的事件处理程序。如果你不知道怎么做。在组合框上单击鼠标右键,然后单击"属性"。现在,在您的属性窗口中,您需要单击黄色的电动螺栓("事件")。向下滚动直到找到SelectedIndexChanged,然后双击其右侧的空字段。这将在代码中创建一个新的部分来处理该事件。

这是我的样子。我存储了第一个组合框的文本,并将其传递给一个新方法,该方法将与第一个组合盒的绑定方式类似。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string selectedValue = comboBox1.Text;
bindSecondComboBox(selectedValue);
}

这就是方法。简单if&否则,如果处理不同的选择并相应地绑定第二个组合框。

protected void bindSecondComboBox(string selValue)
{
comboBox2.Items.Clear();
if (selValue == "Shoes")
{
comboBox2.Items.Add("Rockport");
comboBox2.Items.Add("Addidas");
comboBox2.Items.Add("Nike");
}
else if (selValue == "Watches")
{
comboBox2.Items.Add("Tagheuer");
comboBox2.Items.Add("Rolex");
comboBox2.Items.Add("Victus");
}
else if (selValue == "Tvs")
{
comboBox2.Items.Add("Sony");
comboBox2.Items.Add("Samsung");
comboBox2.Items.Add("Toshiba");
}
}

这是非常基本的代码,有几十种方法可以做到这一点。使用这种方法可以很容易地在以后对其进行编辑,使其变得更加复杂和强大

由于ComboBox接收对象,您可以在其中存储您想要的任何内容,我将在这里查看他们如何创建新的Items类来处理文本/值对的示例。您可以将其与数据表、SQL、数组、列表或任何可以用来加载数据的东西配对,而无需像我的示例那样对其进行硬编码。

最新更新