Подтвердить что ты не робот

CheckedListBox, позволяющий проверять только один элемент

В моем приложении CheckedListBox я хочу разрешить проверку только одного элемента.

Я уже установил эти свойства

checkOnClick = true;
SelectionMode = One;

Любые рекомендации будут оценены

4b9b3361

Ответ 1

снимите все остальные элементы в событии ItemCheck, как показано ниже:

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) {
      for (int ix = 0; ix < checkedListBox1.Items.Count; ++ix)
        if (ix != e.Index) checkedListBox1.SetItemChecked(ix, false);
    }

Ответ 2

лучший способ сделать это выглядит следующим образом:

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (e.NewValue == CheckState.Checked && checkedListBox1.CheckedItems.Count > 0)
    {
        checkedListBox1.ItemCheck -= checkedListBox1_ItemCheck;
        checkedListBox1.SetItemChecked(checkedListBox1.CheckedIndices[0], false);
        checkedListBox1.ItemCheck += checkedListBox1_ItemCheck;
    }
}

нет циклов всегда лучше.