ComboBox最经常使用的事件就是SelectedIndexChanged。但在将ComboBox绑定到某个数据源的过程中,会触发SelectedIndexChanged
事件,而这个时候用户并没有选择内容,其SelectedValue也不是对应字段的值。那么时写在SelectedIndexChanged中的处理代码就会因为SelectedValue的内容不正确引发异常。
一般网上找到的方法是添加一个标记位,在绑定前设置为false,绑定完成后设置回true。
void
BindComboBox()
{
flag = false ;
ComboxBox1.ValueMember = " ValueColumn " ;
ComboxBox1.DisplayMember = " DisplayColumn " ;
ComboxBox1.DataSource = DataTable1;
flag = true ;
}
{
flag = false ;
ComboxBox1.ValueMember = " ValueColumn " ;
ComboxBox1.DisplayMember = " DisplayColumn " ;
ComboxBox1.DataSource = DataTable1;
flag = true ;
}
private void ComboxBox1_SelectedIndexChanged( object sender, EventArgs e) { if (flag) { // Do something } }