あなたはItemCheckためにCheckedListBoxでイベントチェックを追加することによって、それを行うと、このような関数を使用できます。
さらに
if (checkIfAllowed) {
...
} else {
}
:
private static bool checkIfAllowed(CheckedListBox listBox) {
if (listBox.CheckedItems.Count > 0) {
return false;
}
return true;
}
を次にイベントであなたは次のようにしていますこれを改善するには、アイテムをチェックする前にすべてのアイテムのチェックを外す機能/メソッドを追加します。ユーザーがチェックボックスをクリックすると、他のチェックボックスはすべてオフになります。
private static void uncheckAll(CheckedListBox listBox) {
IEnumerator myEnumerator;
myEnumerator = listBox.CheckedIndices.GetEnumerator();
int y;
while (myEnumerator.MoveNext() != false) {
y = (int)myEnumerator.Current;
listBox.SetItemChecked(y, false);
}
}
だからItemCheckイベントであなたが最初
uncheckAll(yourListBox)
を実行しなければならないであろうと、単に項目がチェックされてみましょう:
はすべてチェックされた項目だけの使用オフにします。
編集: 私は以下のコードでテストしています。それが例外をスローするならば。
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e) {
if (e.NewValue == CheckState.Checked) {
IEnumerator myEnumerator;
myEnumerator = checkedListBox1.CheckedIndices.GetEnumerator();
int y;
while (myEnumerator.MoveNext() != false) {
y = (int)myEnumerator.Current;
checkedListBox1.SetItemChecked(y, false);
}
}
}
なぜチェックリストボックスを使用するのですか?あなたは単純なリストボックスを使うことができます。 –
ユーザーは、残念ながら「チェック」できるように具体的に求めました。一度にチェックできるアイテムの数を制限する簡単な方法がないと判明した場合は、あなたが言うように通常のリストボックスを使用します。 – AndrewC
代わりにComboBoxを使用します。 DropDownStyle =本当にリストが必要な場合は単純です。 –