如何根据从其他框中选择的文本更改动态创建的组合框的显示项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据从其他框中选择的文本更改动态创建的组合框的显示项相关的知识,希望对你有一定的参考价值。

在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++;
    }
答案

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

创建组合框时,将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");


    }

以上是关于如何根据从其他框中选择的文本更改动态创建的组合框的显示项的主要内容,如果未能解决你的问题,请参考以下文章

根据组合框选择更改文本框值

MS ACCESS - 如何在更改事件中获取未绑定组合框的当前列值

根据从组合框中选择的条目在 Access 表单中创建条目(不包括来自组合框的条目)

MS Access - 带有组合框和文本框的 If 语句

如何动态更改 C# 组合框或文本框中的自动完成条目?

当用户从 MS Access 的组合框中选择“其他”时,如何显示输入表单?