winforms ComboBox的SelectedIndexChanged事件,SelectedIndexChanged事件不执行

再次用到了ComboBox,需要将一张表中的编号和名称分别绑定到ComboBox的DisplayMember和ValueMember上,这个很容易,直接给它的DataSource赋上查询到的值即可,接着业务的需要我又加了它的SelectedIndexChanged事件,就是当选中的项改变时我需要获取SelectedValue,然后根据这个值(int类型),我需要查询数据库,获取与它关联的一些字段,接着就是无法将无法将DataRow转换为int类型的异常,这个异常以前碰到过,就是给ComboBox数据源赋值的时候就会触发SelectedIndexChanged事件,这时候我们想获取我们使用的SelectedValue其实还没有完整的被绑定到控件上,处理办法http://www.cnblogs.com/Bonizlee/archive/2011/05/24/2054942.html,点击上面的地址,其实我是想说下面的一个问题,SelectedIndexChanged不执行,我是想根据数据库中的记录对一个窗体的状态进行恢复, 重新绑定ComboBox以及根据新的选中的值绑定与此值相关的数据,代码:this.comboBox1.SelectedValue=value;这样写虽然会触发SelectedIndexChanged 事件,可是当重新恢复的那个value值与控件原来的SelectedValue值相等时将不会触发SelectedIndexChanged事件,这时候可以试着做一个判断:

if(this.comboBox1.SelectedValue==value)

{

//此处自己写代码实现数据绑定

}else

{

//触犯事件绑定

this.comboBox1.SelectedValue=value;

}

注:可以把事件处理代码重构成一个方法,当它们相等时掉用一下方法效果一样

原文地址:https://www.cnblogs.com/kongkonglonglong/p/2565748.html