winform Combox绑定数据时不触发SelectIndexChanged事件

做了一个仓库选择的联动,选了仓库选其下的货区,选了货区选其下的货架分区。每个combox初始化、绑定数据是都会触发SelectIndexChanged事件,相当头疼。

后来无意中在网上看到了一种方法—— 假设combox为combox1。在绑定数据之前先combox.SelectIndexChanged-=combox_SelectIndexChanged;先把他的事件去掉。

等绑完了再combox.SelectIndexChanged+=combox_SelectIndexChanged;加上。

perfect!

不过遇到一个问题,这样不能实现联动。我要在绑定数据之后自动完成联动选择。

combox绑定数据的方法是这样的。

combox1.DataSource=datatable1; ////////再绑定数据源时会第一次触发
combox1.ValueMember=“value”;    ////////再绑定数据源时会第二次触发
combox1.DisplayMember=“text”; /// 如果赋予ValueMember和DisplayMember的值一样的话则不触发,否则第三次触发。

这时触发效果才和你选择一个选项时触发的效果一样。

 

于是为了实现联动,我先设置ValueMember,然后combox.SelectIndexChanged+=combox_SelectIndexChanged;加上事件,再设置DisplayMember。OK,联动实现了。

combox1.SelectIndexChanged-=combox1_SelectIndexChanged;///删除事件
combox1.DataSource=datatable1; ////////再绑定数据源时会第一次触发
combox1.ValueMember=“value”;    ////////再绑定数据源时会第二次触发
combox1.SelectIndexChanged+=combox1_SelectIndexChanged;////注册事件
combox1.DisplayMember=“text”; /// 如果赋予ValueMember和DisplayMember的值一样的话则不触发,否则第三次触发。

 

 

posted @ 2013-09-12 19:08  雄风哥  阅读(3178)  评论(0编辑  收藏  举报