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。