天哪,我已经做了两天了,但我仍然找不到解决方案。这是我的情况:
我有三个组合框控件,我需要从数据集动态加载数据。
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做过类似的事情。您需要做的是使用动作侦听器。基本上填充第一个组合框,然后向其添加一个动作侦听器,以便在所选索引更改时被调用。在该动作侦听器中填充第二个组合框。