关于combobox联动问题

shw586 2008-12-12 11:58:18
源代码如下:
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的值。谢谢。
...全文
107 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangping_li 2008-12-13
  • 打赏
  • 举报
回复
da.SelectCommand = new OleDbCommand("select id,name from smallclass where daleiid=" + cb_bigclass.SelectedValue.ToString(), conn);
你这里写的都是SelectedValue,为什么要用SelectIndex做条件呢?
改成value吧
root_ 2008-12-13
  • 打赏
  • 举报
回复
cb_bigclass_SelectedIndexChanged中,不用if (cb_bigclass.SelectedIndex > -1) 做为判定条件,用cb_bigclass.SelectedValue做为判定条件

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧