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

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

У меня эти свойства уже установлены

<code>checkOnClick = true;
SelectionMode = One;
</code>

Любой совет будет оценен

 musefan11 мая 2012 г., 16:30
Может ли группа радиокнопок не подходить лучше?
 Rango11 мая 2012 г., 16:30
 Ahmed11 мая 2012 г., 16:36
@ akatakritos Выбор отличается, а проверка отличается. Вы можете выбрать что-то, но не отметить.
 Ben11 мая 2012 г., 16:29
Когда пользователь нажимает на список, снимите флажки с других элементов.
 akatakritos11 мая 2012 г., 16:35
Кажется, что CheckedListBox наследует SelectionMode от ListBox, но игнорирует это свойство.

Ответы на вопрос(2)

Решение Вопроса

как показано ниже:

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);
    }
 RhysW11 мая 2012 г., 16:33
Даже проще - это радио кнопки, клиенты привыкли к тому, что радиокнопки имеют только один выбор, а флажки - к множественному выбору, будьте очень осторожны, прежде чем вносить в них такие изменения.
 Ahmed11 мая 2012 г., 16:38
@ Sam1 Конечно, это было бы лучше, но в этом случае я сталкиваюсь с совершенно другим сценарием, где этот подход подходит лучше всего.
 Ahmed11 мая 2012 г., 16:34
@ Sam1, все получилось. Благодарност
 Ahmed11 мая 2012 г., 16:31
Спасибо, я думал, что должно быть простое свойство, которое подойдет.
 Zaki11 мая 2012 г., 16:35
@ Ахмед, как сказал RhysW, вам лучше использовать переключатель ... но если вам нужно использовать флажки, тогда этот способ будет работать ..

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;
    }
}

нет, всегда лучше.

Ваш ответ на вопрос