仅当从组合框中选择一项时执行操作
本文关键字:一项 操作 执行 组合 选择 | 更新日期: 2023-09-27 18:11:01
我有一个ComboBox
,并在表单的加载事件中填充了数据。现在,当我从ComboBox
中选择一个项目时,它应该执行一些操作。我知道一些事件可以用在这里,比如
SelectedIndexChanged
SelectedValueChanged
等。
但问题是,这些事件被提出,即使设置DataSource
的组合框和选择默认索引等,当表单加载。
ComboBox1.DataSource = dt;
ComboBox1.SelectedIndex = -1;
我想做的是,我只是想执行一个动作,只有当我选择一个项目的组合框。在这种情况下是否存在可以使用的鼠标事件?
comboBox.SelectionChangeCommitted
事件似乎做到了这一点。
否则,你可以在绑定数据源之前设置一个布尔值,你可以在事件中使用它来忽略它。
private bool blnIgnoreEvent = false;
// in Form_load
blnIgnoreEvent = true;
ComboBox1.DataSource = dt;
blnIgnoreEvent = false;
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (!blnIgnoreEvent)
{
// go ahead
}
}
我相信没有比这更好的事件了。XIVSolutions为绑定数据源时触发的事件提供了一个简洁的解决方案:如何在绑定数据源时防止选中的交换事件?
另外,既然SelectedIndexChanged
适用于所有情况,为什么不处理第一种情况呢?
if (ComboBox1.SelectedIndex == -1)
{
return;
}
如果-1对应的值你想要能够选择,只是使用一个私有字段来存储一些bool
,你检查,以确定是否这是第一次执行的动作