gpt4 book ai didi

c# - Windows C# CheckedListBox 选中项事件处理

转载 作者:太空狗 更新时间:2023-10-29 19:52:45 25 4
gpt4 key购买 nike

我目前正在开发一个 Window 应用程序,该应用程序在程序的某些方面使用 CheckedListBoxes。我遇到的一个问题是,我一直在尝试查找选中某项时触发的事件,以便我可以在选中任何列表项时启用表单按钮。

问题是我尝试使用以下;

private void clbAvailMods_ItemCheck(object sender, ItemCheckEventArgs e)
{
if(e.NewValue == CheckState.Checked)
{
btnInstall.Enabled = true;
}
}

但是当我在 if 语句上设置断点时,它永远不会在检查列表框中的项目时触发。

我是不是做错了什么?

最佳答案

标准的 Windows 窗体技巧是延迟运行代码,直到所有事件副作用都已完成。您使用 Control.BeginInvoke() 方法延迟运行代码。这将解决您的问题:

    private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e) {
this.BeginInvoke(new MethodInvoker(evalList), null);
}

private void evalList() {
bool any = false;
for (int ix = 0; ix < checkedListBox1.Items.Count; ++ix) {
if (checkedListBox1.GetItemChecked(ix)) {
any = true;
break;
}
}
btnInstall.Enabled = any;
}

关于c# - Windows C# CheckedListBox 选中项事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3181985/

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