C# 如何停止列表框自动选择?
加载C# 如何停止列表框自动选择?,c#,C#,加载listbox并更改DataSource时listbox触发所选索引更改功能。如何避免触发此功能? 我试过这个: somelistbox.SelectedIndex=-1 添加后,listbox不会选择第一个元素(至少它在UI中不可见),但会触发所选索引的函数,就像选择第一个元素一样。您可以使用保护 private bool _isSelectionEnabled = true; 在事件处理程序中 private void listBox1_SelectedIndexChanged(obj
listbox
并更改DataSource
时listbox
触发所选索引更改功能。如何避免触发此功能?
我试过这个:
somelistbox.SelectedIndex=-1
添加后,listbox
不会选择第一个元素(至少它在UI中不可见),但会触发所选索引的函数,就像选择第一个元素一样。您可以使用保护
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最终确保在任何情况下都会重置标志,即使发生异常也是如此
如果您不想触发逻辑,也可以在代码中设置SelectedIndex
时执行此操作。您可以使用防护装置
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最终确保在任何情况下都会重置标志,即使发生异常也是如此
如果您不想触发逻辑,也可以在代码中设置
SelectedIndex
时执行此操作。您只需检查SelctedIndex并立即返回,如果它是-1。您只需检查SelctedIndex并立即返回,如果它是-1。