2012-06-27 1 views
0

Я работаю над приложением .NET Windows Forms. У меня есть процедура обработчика событий для элемента CheckedListBox, который должен удалить checkbox из списка, если он не установлен. Я получил эту часть работы, но проблема в том, что следующий checkBox, который должен быть проверен, автоматически отключается, когда я это делаю.Как я могу запретить следующий флажок в контроле CheckedListBox, если предыдущий флажок удален?

Я попытался «вручную» удалить все элементы из CheckedListBox и добавить их снова, убедившись, что они отмечены, но следующий флажок не установлен.

Это очень неприятно.

Есть что-то не в порядке с моим кодом или это ошибка?

private void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e) 
    { 
     if (e.CurrentValue == CheckState.Checked) 
     { 
      checkedListBox.Items.RemoveAt(e.Index); 
     } 
    } 
+0

Значит, все предметы начали проверяться? – Paparazzi

+0

№ Элементы представляют выбранные «Фильтры». Для каждого фильтра установлен флажок checkedListBox. Когда пользователь хочет удалить фильтр, он просто снимает флажок, и он исчезает из элемента управления checkedListBox. Но, как я уже упоминал, следующий флажок не установлен. Попробуй :) –

ответ

0

Я нашел способ решить эту проблему. Это немного взломать, но это работает.

Я только что предоставил процедуру обработчика событий MouseUp и внутри нее зациклился на элементах checkedListBox, установив непроверенные элементы для проверки.

Смежные вопросы