gpt4 book ai didi

c# - 在 C# 中修改 ComboBox SelectedIndex 而不触发事件

转载 作者:太空狗 更新时间:2023-10-29 18:03:43 34 4
gpt4 key购买 nike

我的 C# 应用程序有一个带有 SelectedIndexChanged 事件的 comboBox。通常,我希望此事件触发,但有时我需要事件不触发。我的 comboBox 是一个 MRU 文件列表。如果发现列表中的文件不存在,则将该项目从 comboBox 中删除,并将 comboBox SelectedIndex 设置为零。但是,将 comboBox SelectedIndex 设置为零会导致触发 SelectedIndexChanged 事件,这在本例中是有问题的,因为它会导致一些 UIF 代码在事件处理程序中运行。是否有一种优雅的方式来禁用/启用 C# 表单控件的事件?谢谢。

最佳答案

启动事件处理程序方法

ComboBox combo = sender as ComboBox;
if (combo.SelectedIndex == 0)
{
return;
}

如果您对不同的事件处理程序有疑问,您可以先删除事件处理程序的事件注册。

combo.SelectedIndexChanged -= EventHandler<SelectedIndexChangedEventArgs> SomeEventHandler;
combo.SelectedIndex = 0;
combo.SelectedIndexChanged += EventHandler<SelectedIndexChangedEventArgs> SomeEventHandler;

关于c# - 在 C# 中修改 ComboBox SelectedIndex 而不触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3356518/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com