根据Combobox1选择的项目填充ComboBox2

时间:2014-04-25 12:54:48

标签: c#

我是一名学生,也是编程的新手,我有两个组合框,combobox1和combobox2 combobox1包含移动公司,如nokia,三星,htc和combobox2包含三星,s3等移动模型,我想排序两个组合框我的意思是当我点击组合框中的诺基亚时,所有nokia模型应该在combobo2列表中可见,所以我决定使用外键关系

Registry_name -table
- IDr (primary key)
- name



Material -table
- ID (primary key)
- IDr (foreign key to manufacturer)
- name

Example for the data:

Registry_name table

IDr name
-------------- ----------
1 Nokia
2 Samsung
3 HTC


Material table

id idr name
------- -------------- ----------
1 1 C7
2 1 Lumia 900
3 1 Lumia 920
4 2 Galaxy S II
5 2 Galaxy S III
6 3 Desire X
7 3 Windows Phone 8X
8 3 One S

我希望如果我在第一个组合框中选择nokia,那么第二个组合框将选择所有IDr = 1的模型使用什么?我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

在第二个组合框中需要多个项目数组。 因此,当在第一个组合框中选择一个项目时,第二个组合框项目就是阵列中的项目。

首先定义2个数组。

  string[] nokias = { "2314", "s3522" }; // and so on
  string[] samsung = { "s3",  "s4" };

然后在第一个组合框的SelectedIndexChanged事件中放入一个if语句。这样,如果第一个更改,您可以更改第二个。

  if(combobox1.selecteditem.text == "nokia"){
     foreach(string str in nokias){
         combobox2.items.add(str);
     }
  }

答案 1 :(得分:0)

您需要处理第一个SelectedIndexChanged控件的ComboBox事件,以将项目填充/添加到第二个ComboBox

试试这个:

comboBox1.SelectedIndexChanged += new          
                        System.EventHandler(this.comboBox1_SelectedIndexChanged);
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    //code for filling the combobox 2
}