1

我有combobox1和comboox2,在combobox1中我的元素是A,B,C和combobox2 a,b,c,d,e,f ...我使用属性屏幕添加了这些元素(我的意思是没有代码)。

       combobox1                     combobox2
    ---------------               ---------------
           A                            a
           B                            b
           C                            c
                                        d
                                        e
                                        f

A 相关 a、b、c 和 B 相关 b、c 和 C 相关 d、e、f。

当我选择“A”时,我只想看到 a,b,c ;when select "B" just b,c etc.

我可以给出组合框1项目的索引号吗?当我选择“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;
   }
4

1 回答 1

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();
   }
于 2012-07-25T06:50:04.513 回答