province.SelectedIndexChanged -= this.province_SelectedIndexChanged;
province.DataSource = 数据源(datatable)
province.DisplayMember = "title";
province.ValueMember = "id";
province.SelectedIndexChanged += this.province_SelectedIndexChanged;
其中的province为ComboBox
这个事件是在你改变了ComboBox的值时才触发的。但有一个问题就是当你给ComboBox初始化数据(绑定数据)时也会触发这个事件。为了初始化时不触发这个事件,可以这么做: province.SelectedIndexChanged -= this.province_SelectedIndexChanged; province.Data
ComboBox
最经常使用的
事件
就是
Selected
Index
Change
d。但在将
ComboBox
绑定到某个数据源的过程中,会触发
Selected
Index
Change
d
事件
,而这个时候用户并没有选择内容,其
Selected
Value也不是对应字段的值。那么时写在
Selected
Index
Change
d中的处理代码就会因为
Selected
Value的内容不正确引发异常。
一般网上找到的方法
今天偶尔复习下WinForm开发,在用到
ComboBox
下拉框的时候,想用
Selected
Index
Change
d
事件
根据选中内容动态展示不同的数据,需求很简单,但是竟然出错了,后来发现其实就是
Selected
Index
Change
d
事件
执行时间问题导致的,那如何解决呢,请看下面的分析。
一、DataBind()方法就是给下拉框绑定的方法(这里为了让下拉框默认不选中,
设置
了
Selected
Index
= -1)这个位置就是出问题的地方
//数据绑定
private voi
C#--
Selected
Index
Change
d
事件
,
Selected
Value
Change
d
事件
和Selection
Change
Committed
事件
的区别及联系
你要明白,任何问题都不是孤立存在的,一定有人曾经遇到过,并且已经有更好的解决办法了,只是我还不知道。我不应该在黑暗中独自前行,去重新发明轮子,也许我的顿悟,只是别人的基本功!我应该要站在巨人的肩膀上,学习更成熟的经验和方法,然后再来解决这个问题
11-05