填充数据源时避免调用索引更改事件

时间:2011-12-26 20:33:59

标签: c# winforms combobox

我在c#winform app中填充了一个带有datasource属性的组合框。另一方面,我正在使用相同组合的SelectedIndexChanged启动一个动作。问题是,只要组件填充了数据源,就会调用SelectedIndexChanged,我只想在用户实际进行选择时调用此事件。 有没有办法在填写组合时避免调用此事件?

这是我的一些代码

//Filling the combo with some data
combo_cliente.DataSource = clientes;
combo_cliente.DisplayMember = "NomComp";
combo_cliente.ValueMember = "IDPersona";

private void combo_cliente_SelectedIndexChanged(object sender, EventArgs e)
{
    // Here is the action to be triggered when user perfoms a selection
}

由于

4 个答案:

答案 0 :(得分:1)

我假设您已为设计器分配了事件处理程序,因此在实例化控件时它们会被绑定。或者,您可以在填充控件后在代码中分配它们。

答案 1 :(得分:1)

也许取消订阅然后再订阅:

combo_cliente.SelectedIndexChanged -= combo_cliente_SelectedIndexChanged;
combo_cliente.DataSource = clientes;
combo_cliente.SelectedIndexChanged += combo_cliente_SelectedIndexChanged;

答案 2 :(得分:0)

在您的代码中附加您的事件处理程序,而不是在您的aspx页面上执行它,并且在您完成加载控件之后执行它。

答案 3 :(得分:0)

你需要添加一个空白记录作为第一个组合框。然后在你的代码中,你可以写这个;

private void combo_cliente_SelectedIndexChanged(object sender, EventArgs e) { if!(comboBox1.SelectedValue.ToString()== string.Empty) { //Here is the action to be triggered when user perfoms a selection } }