如何仅选中复选框中的一项

问题描述 投票:0回答:4

我有一个复选框列表控件,并且我一次只能选择一个项目,而我目前正在使用此代码来执行相同的操作。

private void CLSTVariable_ItemCheck(object sender, ItemCheckEventArgs e)
{
  // Local variable
  int ListIndex;

  CLSTVariable.ItemCheck -= CLSTVariable_ItemCheck;

  for (ListIndex = 0; 
       ListIndex < CLSTVariable.Items.Count; 
       ListIndex++)
  {        
    // Unchecked all items that is not currently selected
    if (CLSTVariable.SelectedIndex != ListIndex)
    {
      // set item as unchecked
      CLSTVariable.SetItemChecked(ListIndex, false);
    } // if
    else
    {
      // set selected item as checked
      CLSTVariable.SetItemChecked(ListIndex, true);
    }
  } // for
  CLSTVariable.ItemCheck += CLSTVariable_ItemCheck;  
}

此代码运行正常。

但是问题是,当我一次又一次单击所选项目时,不应取消选中该所选项目,这意味着应始终至少检查一项......>

我有一个复选框列表控件,并且我一次只能选择一项,而我目前正在使用此代码来执行相同的操作。私有void CLSTVariable_ItemCheck(object sender,ItemCheckEventArgs e)...

c# winforms checkedlistbox
4个回答
2
投票

我同意以上评论员-您应该考虑使用单选按钮。但是,如果您确实需要CheckedListBox,请改用此ItemChecked事件处理程序:


0
投票

嗯,这是对我的答复!我无法使以上代码在checkedListBox1_ItemCheck中工作。我必须修改它的一部分,并将其包含在checkedListBox1_SelectedIndexChanged事件中。但是我无法一起删除原始代码。这是我添加的内容...


0
投票

我发现此代码非常有效


0
投票

“至少应经常检查一项”

© www.soinside.com 2019 - 2024. All rights reserved.