В приложении CheckedListBox
Я хочу разрешить проверку только одного элемента.CheckedListBox, позволяющий проверять только один элемент
я эти свойства уже установлены
checkOnClick = true;
SelectionMode = One;
Любые рекомендации будут оценены
В приложении CheckedListBox
Я хочу разрешить проверку только одного элемента.CheckedListBox, позволяющий проверять только один элемент
я эти свойства уже установлены
checkOnClick = true;
SelectionMode = One;
Любые рекомендации будут оценены
снимите все остальные элементы в 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);
}
Спасибо, я думал, что, должно быть, было простое свойство, которое могло бы сделать. – Ahmed
еще проще - это радиокнопки, клиенты используются для радиообмена только одним выбором, а флажки - множественным выбором, будьте очень осторожны, прежде чем накладывать на них изменения, как это – RhysW
@ Sam1, это сработало. Спасибо – Ahmed
лучший способ сделать это например:
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;
}
}
Отсутствие петли всегда лучше.
будет ли группировка переключателей лучше не соответствовать вещам? – musefan
Первый [google] (https://www.google.com/search?source=ig&hl=de&rlz=1G1ACAW_DEDE443&q=CheckListBox++only+one+item&oq=CheckListBox++only+one+item&aq=f&aqi=&aql=&gs_l= igoogle.3 ... 67628.71513.0.71707.17.5.1.11.0.0.261.587.3j1j1.5.0 ... 0.0.4BbfKlsCIQk) hit: http://social.msdn.microsoft.com/Forums/en-US/winforms/ thread/5333cdf2-a669-467c-99ae-1530e91da43a/ –
Кажется, CheckedListBox наследует SelectionMode из ListBox, но игнорирует это свойство. – akatakritos