gpt4 book ai didi

c# - 如何更新由另一个组合框触发的组合框中的值?

转载 作者:行者123 更新时间:2023-11-30 20:03:58 24 4
gpt4 key购买 nike

我在一个表单中有 2 个组合框。

我希望 combobox1 中的选定值在 combobox2 中的列表更新时发生变化。

例如:ComboBox1 包含移动公司的名称,ComboBox2 包含该公司所有手机的列表。

最佳答案

假设您有一本将手机型号与其制造商相关联的字典:

Dictionary<string, string[]> brandsAndModels = new Dictionary<string, string[]>();

public void Form_Load(object sender, EventArgs e)
{
brandsAndModels["Samsung"] = new string[] { "Galaxy S", "Galaxy SII", "Galaxy SIII" };
brandsAndModels["HTC"] = new string[] { "Hero", "Desire HD" };
}

您可以获得要在左侧组合框中显示的项目:

foreach (string brand in brandsAndModels.Keys)
comboBox1.Items.Add(brand);

您只需执行一次,例如在表单的 Load 事件中。注意:brandsAndModels 字典必须是实例变量,而不是局部变量,因为我们稍后需要访问它。

然后,您必须为 SelectedIndexChanged 事件分配一个事件处理程序,在该事件中,您将第二个组合框中的项目替换为所选品牌数组中的项目:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox2.Items.Clear();

if (comboBox1.SelectedIndex > -1)
{
string brand = brandsAndModels.Keys.ElementAt(comboBox1.SelectedIndex);
comboBox2.Items.AddRange(brandsAndModels[brand]);
}
}

如果所有这些都来自数据库,那么使用数据绑定(bind)会好得多,如我在对您的问题的评论中链接的问题的答案中所述。

关于c# - 如何更新由另一个组合框触发的组合框中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13954023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com