源代码如下:
private void InsertNetNodeForm_Load(object sender, EventArgs e)
{
//绑定大类下拉列表控件cb_bigclass数据
DataTable tbBigClass = new DataTable();
da.SelectCommand = new OleDbCommand("select id,name from bigclass", conn);
da.Fill(tbBigClass); cb_bigclass.DataSource = tbBigClass;
cb_bigclass.DisplayMember = "name";
cb_bigclass.ValueMember = "id";
} private void cb_bigclass_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable tbSmallClass = new DataTable();
if (cb_bigclass.SelectedIndex > -1)
{
da.SelectCommand = new OleDbCommand("select id,name from smallclass where daleiid=" + cb_bigclass.SelectedValue.ToString(), conn);
try
{
da.Fill(tbSmallClass);
cb_smallclass.DataSource = tbSmallClass;
cb_smallclass.DisplayMember = "name";
cb_smallclass.ValueMember = "id";
}
catch (Exception exc)
{
}
}
}问题:在窗体第一次启动时,cb_bigclass数据绑定引发了SelectedIndexChanged事件,但在事件处理程序中取不到SelectedValue的值,求解决方法,要么在数据绑定时不引发SelectedIndexChanged事件,要么在数据绑定完后如何正确设置第二个combobox的值。谢谢。
private void InsertNetNodeForm_Load(object sender, EventArgs e)
{
//绑定大类下拉列表控件cb_bigclass数据
DataTable tbBigClass = new DataTable();
da.SelectCommand = new OleDbCommand("select id,name from bigclass", conn);
da.Fill(tbBigClass); cb_bigclass.DataSource = tbBigClass;
cb_bigclass.DisplayMember = "name";
cb_bigclass.ValueMember = "id";
} private void cb_bigclass_SelectedIndexChanged(object sender, EventArgs e)
{
DataTable tbSmallClass = new DataTable();
if (cb_bigclass.SelectedIndex > -1)
{
da.SelectCommand = new OleDbCommand("select id,name from smallclass where daleiid=" + cb_bigclass.SelectedValue.ToString(), conn);
try
{
da.Fill(tbSmallClass);
cb_smallclass.DataSource = tbSmallClass;
cb_smallclass.DisplayMember = "name";
cb_smallclass.ValueMember = "id";
}
catch (Exception exc)
{
}
}
}问题:在窗体第一次启动时,cb_bigclass数据绑定引发了SelectedIndexChanged事件,但在事件处理程序中取不到SelectedValue的值,求解决方法,要么在数据绑定时不引发SelectedIndexChanged事件,要么在数据绑定完后如何正确设置第二个combobox的值。谢谢。
你这里写的都是SelectedValue,为什么要用SelectIndex做条件呢?
改成value吧