Установить неопределенное состояние с помощью мыши в CheckedListBox
Мне нужна помощь, и я бьюсь головой о стену. У меня есть приложение, которое использует три состояния CheckedListBox
. Я использую эти три состояния для конкретных целей:
Проверено означает, что техник выполнил действие Непроверенный означает, что техник не выполнял действия Неопределенный означает, что техник не выполнил действие, потому что оно было ненужным.
Мне нужно иметь возможность переключаться с мышкой от проверенных ручной неопределенным, чтобы проверили как надо. Если бы я использовал CheckBox
и ThreeState
были установлены в True
, это именно то, что произойдет, но кажется, что единственный способ установить неопределенное состояние в CheckedListBox
- это через код.
CheckBox
.
Я думаю, что меня бросает в то, что никто, кажется, не нуждался в этой функциональности раньше. Я ничего не нашел в Google о том, как это можно сделать или задать вопрос.
2 ответа:
Я не думаю, что в элементе управления есть свойство для управления этим поведением, но его легко реализовать в коде:
void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) { switch (e.CurrentValue) { case CheckState.Checked: e.NewValue = CheckState.Unchecked; break; case CheckState.Indeterminate: e.NewValue = CheckState.Checked; break; case CheckState.Unchecked: e.NewValue = CheckState.Indeterminate; break; } }
Я перевел предложенное предложение из C# в VB следующим образом
Private Sub CheckedListBoxCriteria_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles CheckedListBoxCriteria.ItemCheck Select Case e.CurrentValue Case CheckState.Checked e.NewValue = CheckState.Unchecked Exit Select Case CheckState.Indeterminate e.NewValue = CheckState.Checked Exit Select Case CheckState.Unchecked e.NewValue = CheckState.Indeterminate Exit Select End Select End Sub
Сработало как заклинание. Я мог бы поклясться, что попробовал что-то подобное, но у меня ничего не вышло. Но это сработало. Большое вам спасибо. Столь простой. Когда-нибудь я это выясню. Обучение самому себе состоит в том, чтобы придумать идею и копаться в ней, пока не найду ключ.