读书人

怎么在窗体Load事件时取消触发ComboBo

发布时间: 2013-07-30 12:05:31 作者: rapoo

怎样在窗体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");

[解决办法]
引用:
用bool属性来控制是否执行内部语句,但还是会触发,感觉这个方法比较傻瓜式

这个方法我感觉很好,我一点也不觉得傻瓜。
[解决办法]
不要通过双击的方式来添加事件,在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);

读书人网 >C#

热点推荐