15

私のCheckedListBoxアプリでは、1 つの項目のみをチェックできるようにしたいと考えています。

これらのプロパティは既に設定されています

checkOnClick = true;
SelectionMode = One;

アドバイスをいただければ幸いです

4

2 に答える 2

35

以下のように、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);
    }
于 2012-05-11T14:30:01.617 に答える
9

これを行う最良の方法は次のとおりです。

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

ループしない方が常に良いです。

于 2014-07-11T08:59:01.787 に答える