加载listbox
并更改DataSource
时listbox
触发选定索引更改功能。如何避免触发此功能?
我尝试了这个:
somelistbox.SelectedIndex = -1;
添加此选项后,listbox
不会选择第一个元素(至少在UI中不可见),但是会触发选择索引的功能,就像选择了第一个元素一样。
答案 0 :(得分:2)
您可以使用警卫。
private bool _isSelectionEnabled = true;
在事件处理程序中
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (_isSelectionEnabled) {
// Put selection logic here.
}
}
设置数据源时
_isSelectionEnabled = false;
try {
listBox1.DataSource = datasource;
} finally {
_isSelectionEnabled = true;
}
即使在发生异常的情况下,try-finally仍可确保在任何情况下重置该标志。
如果您不希望触发逻辑,也可以在代码中设置SelectedIndex
时执行此操作。