本文主要是介绍WINCE中ComboBox绑定数据源时触发SelectedIndexChanged事件的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ComboBox最经常使用的事件就是SelectedIndexChanged。但在将ComboBox绑定到某个数据源的过程中,会触发SelectedIndexChanged事件,而这个时候用户并没有选择内容,其SelectedValue也不是对应字段的值。那么时写在SelectedIndexChanged中的处理代码就会因为SelectedValue的内容不正确引发异常。
一般网上找到的方法是添加一个标记位,在绑定前设置为false,绑定完成后设置回true。
方法一:
//绑定到ComboBox
void BindComboBox()
{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}
}
方法二:,就是在绑定前,将SelectedIndexChanged的委托去掉,等绑定完成后,再添加事件委托。
//增减委托绑定
void BindComboBox()
{ //去除委托
ComboBox1.SelectedIndexChanged -= new EventHandler(ComboBox1_SelectedIndexChanged);
ComboBox1.DataSource = null;
ComboBox1.ValueMember = "ValueColumn";
ComboBox1.DataSource = DataTable1;
//添加委托
ComboBox1.SelectedIndexChanged += new EventHandler(ComboBox1_SelectedIndexChanged);
ComboBox1.DisplayMember = "DisplayColumn";
}
这篇关于WINCE中ComboBox绑定数据源时触发SelectedIndexChanged事件的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!