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/archive/2012/06/27/2565748.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值