天哪,我已经做了两天了,但我仍然找不到解决方案。这是我的情况:

我有三个组合框控件,我需要从数据集动态加载数据。


cbCode1填充了加载表单。
从cbCode1中选择的索引更改时,将填充cbCode2
当从cbCode1中选择的索引更改时,将填充cbCode3


数据来自数据集“ description”和“ id_code”中的两个字段。因此,我想将说明的值与其ID相关联。因为我以后需要这个。

在加载表单中,我有以下内容:

cbCode1.DataSource = D.Tables [0];
cbCode1.DisplayMember = D.Tables [0] .Columns [“ description”]。ColumnName;
cbCode1.ValueMember = D.Tables [0] .Columns [“ id_code”]。ColumnName;

现在,当从cbcode1中选择的索引更改时:

private void cbCode1_SelectedIndexChanged(object sender, EventArgs e)
    {

        // Get dataset from DB
        DataSet D = new DataSet();
        D = reason_get(1, 1, 1); // IdStation, Active, Level

        // Ensure the cbcode2 is cleared
        cbCode2.Items.Clear();
        string SelectedValue = cbCode1.SelectedValue.ToString();

        foreach (DataRow row in D.Tables[0].Rows)
        {


            if (row["id_parent_code"].ToString () == SelectedValue )
            {

                cbCode2.DataSource = D.Tables[0];
                cbCode2.DisplayMember = D.Tables[0].Columns["description"].ColumnName;
                cbCode2.ValueMember = D.Tables[0].Columns["id_code"].ColumnName;

                cbCode2.SelectedIndex = 0;

            }
        }



    }


该代码不起作用,我不知道我在做什么错。请帮忙解决这个问题?

提前致谢!

一个新手程序员。

最佳答案

我以前没有做过,但是我为datagridview做过类似的事情。您需要做的是使用动作侦听器。基本上填充第一个组合框,然后向其添加一个动作侦听器,以便在所选索引更改时被调用。在该动作侦听器中填充第二个组合框。

09-26 09:10