1

在 C#(win-form) 上制作我的项目时,我遇到了一个问题,我必须在每次单击添加按钮 (button1) 时动态生成 2 个组合框,并且我必须并排绑定第二个组合框随着第一个框的索引更改,从数据库(sql server)中检索数据。这是我的代码,请帮助

    int _i = 0;int p = 0; int x=2; int y=0;
    private void button1_Click(object sender, EventArgs e)
    {
        for (int i = p; i < x; i++)
        {  ComboBox C1 = new ComboBox();
            con.Open();
            SqlDataAdapter adp = new SqlDataAdapter("select * from company ",con);
            DataSet ds = new DataSet();
            adp.Fill(ds, "Company");
            C1.DataSource = ds.Tables["Company"];
            C1.DisplayMember = "Company_Name";
            con.Close();

            C1.Location = new Point(160 + x, 30 * p + 10); ;
            C1.Name = "Combo - " + p;
            C1.Parent = this;

            p++;



        }

        x = x + 2;
        y++;
    }
4

1 回答 1

2

回答这个问题,以防万一其他人面临同样的问题——

在创建组合框时附加 selectedIndexChanged 事件处理程序 -

private void button1_Click(object sender, EventArgs e)
    {
        ComboBox c1 = new ComboBox();
        Point loc1 = new Point(50, 80);
         Point loc2 = new Point(250, 80);
        c1.Name = "combobox1";              
        c1.Items.Add("ABC");
        c1.Items.Add("XYZ");
        c1.Items.Add("PQR");
        c1.SelectedIndexChanged += new EventHandler(combobox1__SelectedIndexChanged);
        c1.Location = loc1;

        ComboBox c2 = new ComboBox();
        c2.Name = "combobox2";
        c2.Location = loc2;

        this.Controls.Add(c1);
        this.Controls.Add(c2);
    }

    private void combobox1__SelectedIndexChanged(object sender, EventArgs e)
    {
        ComboBox dummy = sender as ComboBox;
        if(dummy.SelectedItem == "ABC")
        ((ComboBox)dummy.Parent.Controls["combobox2"]).Items.Add("Your Intended items");


    }
于 2018-03-28T07:26:43.243 回答