如何在c#winforms中取消选中已禁用的checkedlistbox?

时间:2016-06-02 04:53:13

标签: c# winforms checkedlistbox

enter image description here

在上图中,“ug(用户组)”是checkedlistbox中的一行,其enabled属性为false。如何在禁用状态下取消选中“ug(用户组)”。

1 个答案:

答案 0 :(得分:1)

您可以轻松使用

checkedListBox1.SetItemChecked(2, false);

checkedListBox1.SetItemCheckState(2, CheckState.Unhecked);

Enabled的{​​{1}}属性对项目或这两种方法的检查状态没有影响。

MSDN链接:

更新:禁用CheckedListBox中的单个项目而不是禁用整个控件是不可能的。

如果您想阻止用户更改一个特殊项目的检查状态,您需要订阅CheckedListBox的{​​{1}}事件:

ItemCheck

在项目的检查状态发生变化之前,会触发此事件。 CheckedListBoxcheckedListBox1.ItemCheck += (sender, e) => { if (e.Index == 2) e.NewValue = CheckState.Unchecked; } ,其中包含项目e,其当前检查状态(ItemCheckEventArgs)以及之后应具有的检查状态({{1} })。

因此设置Index会阻止用户再次检查该项目。