gpt4 book ai didi

c# - 选择所有复选框和 CheckedListBox

转载 作者:行者123 更新时间:2023-11-30 20:55:24 25 4
gpt4 key购买 nike

我有一个包含两个元素的表单:一个CheckedListBox 和一个CheckBoxCheckBox 称为SelectAllCheckBox,用于选中/取消选中CheckedListBox 中的所有项目。我通过与 SelectAllCheckBox 关联的 CheckedChanged 事件处理程序实现此目的,因此当它被选中时,CheckedListBox 中的所有项目都会被选中,并且反之亦然。这很好用。

当用户取消选中 CheckedListBox 中的复选框之一时,我还有取消选中 SelectAllCheckBox 的代码。例如,如果用户选中 SelectAllCheckBox,然后取消选中其中一项,则应该取消选中 Select All CheckBox。这是通过 CheckedListBox.ItemChecked 事件处理程序实现的。这也很好用。

我的问题是,当 SelectAllCheckBox 以编程方式取消选中时(如上述情况),其事件处理程序会导致 CheckedListBox 中的所有项目都取消选中。

我相信其他人也遇到过我的问题;有优雅的解决方法吗?

最佳答案

另一种方法是利用这样一个事实,即当您以编程方式选中/取消选中时,它不会将焦点放在复选框上。因此,您可以将 Focused 属性用作标志。

private void SelectAllCheckBox_CheckedChanged(object sender, EventArgs e)
{
if(!((CheckBox)sender).Focused)
return;
//your code to uncheck/check all CheckedListBox here
}

无需创建另一个单独的 bool 标志(除非您在某处手动更改焦点状态)。

关于c# - 选择所有复选框和 CheckedListBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18339966/

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