怎样在窗体Load事件时取消触发ComboBox.SelecedtIndexChanged事件
意图:
在窗体Load完后才激活ComboBox.SelectedIndexChanged事件
原因:
在执行
ComboBox.DataSource = (DataSet).Tables[""];
ComboBOx.Displaymember = "";
ComboBOx.Valuemember = "";
会触发三次SelectedIndexChanged事件
解决方案:
用bool属性来控制是否执行内部语句,但还是会触发,感觉这个方法比较傻瓜式
新手学习Winform,请大神解惑
------解决方案--------------------可以这么写:
this.comboBox1.Items.Insert(0, "111");
this.comboBox1.Items.Insert(1, "222");
this.comboBox1.Items.Insert(2, "333");
------解决方案--------------------
这个方法我感觉很好,我一点也不觉得傻瓜。
------解决方案--------------------不要通过双击的方式来添加事件,在Form_load事件里直接添加控件的事件
void Form_Load(object sender ,EventAgrs e)
{
ComboBOx.Displaymember = "";
ComboBOx.Valuemember = "";
ComboBox.DataSource = (DataSet).Tables[""];
ComboBox.SelectedIndexChanged+= new EventHandle(ComboBox_SelectedIndexChanged);
}
void ComboBox_SelectedIndexChanged(object sender ,EventArgs e)
{
//Do something
}
------解决方案--------------------或者。
ComboBox.SelectedIndexChanged -= ComboBox_SelectedIndexChanged;
ComboBox.DataSource = (DataSet).Tables[""];
ComboBOx.Displaymember = "";
ComboBOx.Valuemember = "";
ComboBox.SelectedIndexChanged += new EventHandle(ComboBox_SelectedIndexChanged);