Checked list box Проверенные элементы Проверка

1

У меня есть контрольный список, который содержит следующую информацию:

*************
*__All Cells*
*__Cell A   *
*__Cell B   *
*__Cell C   *
*__Cell D   *
*************

Я хочу проверить каждое поле, которое я хочу, однако я хочу, чтобы проверить флажок "Все ячейки", все поля должны быть отмечены автоматически, я уже могу это сделать. Часть, которая нуждается в помощи, если я этого хочу, когда снимите флажок "Все ячейки", все ячейки должны быть сняты.

Вот код, который я использую. Пожалуйста, помогите мне с этим.

private void Cells_CheckedListBox_SelectedIndexChanged(object sender, EventArgs e)
{       
    if (Cells_CheckedListBox.GetItemChecked(Cells_CheckedListBox.Items.IndexOf("All Cells")))
    {
        for (int i = 0; i < Cells_CheckedListBox.Items.Count; i++)
        {
            Cells_CheckedListBox.SetItemCheckState(i, CheckState.Checked);
        }
    } 
}
Теги:
winforms

1 ответ

2

Вы, кажется, делаете это в неправильном случае вообще. Вы должны обработать событие ItemCheck.

private void Cells_CheckedListBox_ItemCheck(object sender, ItemCheckEventArgs e)
{
    int allIndex = Cells_CheckedListBox.Items.IndexOf("All Cells");
    if (e.Index == allIndex)
    {
        for (int i = 0; i < Cells_CheckedListBox.Items.Count; i++)
        {
            if (i != allIndex)
                Cells_CheckedListBox.SetItemCheckState(i, e.NewValue);
        }
    }
}
  • 0
    Я пытаюсь это, но это дает мне «System.StackOverflowException»
  • 0
    О, Иисус ... Длинный день. Да, этот пример не сработает. Я починю это.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню