C# 单击时禁用复选框复选框,但不能从代码隐藏中禁用

C# 单击时禁用复选框复选框,但不能从代码隐藏中禁用,c#,winforms,checkedlistbox,C#,Winforms,Checkedlistbox,我正在创建一个winforms应用程序,其中包含一些名称。我需要的是通过单击禁用复选框,但仍然可以从代码中选中复选框 我尝试将.CheckOnClick设置为false,但第二次单击时复选框仍会选中 我尝试了以下问题的解决方案: 但这也导致禁用了代码中的检查功能 禁用整个框不是一个选项,这将禁用所有事件,包括在我的应用程序中至关重要的selecting和doublemouseclick 任何知道此问题解决方案的人?将启用属性设置为False: 好的,您需要做的是处理CheckedListBox的

我正在创建一个winforms应用程序,其中包含一些名称。我需要的是通过单击禁用复选框,但仍然可以从代码中选中复选框

我尝试将
.CheckOnClick
设置为false,但第二次单击时复选框仍会选中

我尝试了以下问题的解决方案: 但这也导致禁用了代码中的检查功能

禁用整个框不是一个选项,这将禁用所有事件,包括在我的应用程序中至关重要的selecting和doublemouseclick


任何知道此问题解决方案的人?

启用属性设置为
False


好的,您需要做的是处理CheckedListBox的ItemCheck事件,如下所示:

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    e.NewValue = e.CurrentValue;
}
如果要更改代码中复选框的状态,则必须临时删除事件句柄:

checkedListBox1.ItemCheck -= checkedListBox1_ItemCheck;
checkedListBox1.SetItemChecked(1, true);
checkedListBox1.ItemCheck += checkedListBox1_ItemCheck;
这并不优雅,但这是一个可能的解决方案