2016-06-02 7 views
-1

enter image description hereКак снять флажок с выделенного списка в C# winforms?

В приведенном выше изображении «ug (User Group)» представляет собой строку в проверочном списке с включенным свойством false. Как снять флажок «ug (User Group)» в отключенном состоянии.

+0

Вам необходимо снять флажок прагматически? ваше требование недостаточно ясное –

+0

использование chkListBox.SetItemChecked (1, false); – DDave

ответ

1

Вы можете легко использовать

checkedListBox1.SetItemChecked(2, false); 

или

checkedListBox1.SetItemCheckState(2, CheckState.Unhecked); 

Enabled свойство CheckedListBox не оказывает никакого влияния на проверки состояния элементов или этих двух методов.


MSDN ссылки:


UPDATE: Отключение одного элемента в CheckedListBox вместо отключая весь контроль не ПОСС ible из коробки.

Если вы хотите запретить пользователю изменять проверки состояния одного специального пункта, вам необходимо подписаться на ItemCheck случае CheckedListBox:

checkedListBox1.ItemCheck += (sender, e) => 
{ 
    if (e.Index == 2) 
     e.NewValue = CheckState.Unchecked; 
} 

Это событие обожженного перед тем проверка состояния элемента изменено. e - ItemCheckEventArgs, который содержит Index, его текущее состояние проверки (CurrentValue) и состояние проверки, которое оно должно иметь после этого (NewValue).

Таким образом, установка e.NewValue = CheckState.Unchecked предотвращает повторную проверку элемента пользователем.

+0

Мне нужен флажок с readonly и unchecked, Chekedlistbox.SetItemCheckState (2, CheckState.Indeterminate); но мне нужно удалить чек из флажка –

+0

@rahuls Не понимаю вашу проблему. Это именно то, что показывает код. Используйте 'CheckState.Unchecked' вместо' Indeterminate'. –

+0

CheckState.Unchecked правильный, но мне нужно сделать это как только для чтения. Пользователь не может проверить. –