我有combobox1和comboox2,在combobox1中,我的元素是A,B,C和组合框a,b,c,d,e,f ......我使用属性screeen添加了这些元素(我的意思是不用代码)
combobox1 combobox2
--------------- ---------------
A a
B b
C c
d
e
f
相关的a,b,c和B相关的b,c和C相关的d,e,f。
当我选择“A”时,我想看到a,b,c;当选择“B”时,只需b,c等。
我可以给出combobox1项目的索引号吗?当我选择“A”时我想看到的只是“a”,“b”,“c”元素(我的意思是0,1,2个数字) 当我选择“B”时,只有b,c(我的意思是1,2个数字)。 我想这样做,如果没有索引号我必须与编写代码建立所有关系。我在下面编写了一些代码,但它还有很长的路要走。
索引逻辑更好,确定组合框中是否有索引逻辑:)
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox2.Items.Clear();
switch (comboBox1.SelectedItem.ToString())
{
case "A":
comboBox2.Items.AddRange(new string[] { "a", "b", "c" });
break;
case "B":
comboBox2.Items.AddRange(new string[] { "b", "c" });
break;
}
comboBox2.SelectedIndex = -1;
}
答案 0 :(得分:2)
您可以通过索引到结构来避免case语句。
Dictionary<string, List<string>> items =
new Dictionary<string, List<string>>() { {"A", new List<string> {"a", "b","c"} } };
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
combobox2.DataSource = ltems[comboBox1.SelectedItem.ToString()];
combobox2.DataBind();
}