gpt4 book ai didi

c# - CheckedListBox 中没有 ItemChecked 事件?

转载 作者:IT王子 更新时间:2023-10-29 04:15:57 26 4
gpt4 key购买 nike

ListView 控件有一个ItemCheck 事件,它在 项目更改之前触发,还有一个ItemChecked 事件之后触发 项目发生变化。参见 this SO question了解更多详情。

CheckedListBox控件只有ItemCheck事件。

使用 CheckedListBox 执行此类操作的最佳方法是什么?

private void checkedListBox_ItemChecked(object sender ItemCheckedEventArgs e)
{
okButton.Enabled = (checkedListBox.CheckedItems.Count > 0);
}

补充问题:为什么没有 CheckedListBox.ItemChecked 事件?

最佳答案

处理在引发时无法处理的事件的一个好技巧是延迟处理。您可以使用 Control.BeginInvoke() 方法执行此操作,它会在分派(dispatch)所有事件、副作用完成并且 UI 线程再次空闲时立即运行。通常也对 TreeView 有帮助,这是另一个古怪的控件。

    private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) {
this.BeginInvoke((MethodInvoker)delegate {
okButton.Enabled = checkedListBox1.CheckedItems.Count > 0;
});
}

以防万一:这与线程无关,而且这个技巧很便宜。

为什么没有 ItemChecked 事件?不太确定。 CheckedListBox 只是不是一个很好的控件。绝对不是由原始 Winforms 团队中的一位专家完成的。

关于c# - CheckedListBox 中没有 ItemChecked 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4454058/

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