【问题标题】:Uncheck all CheckBoxes using Linq使用 Linq 取消选中所有复选框
【发布时间】:2021-03-13 16:06:51
【问题描述】:

我有三个复选框,选择后可以在列表框中输入一个条目(见下文)。当我想更改复选框的状态(未选中)时,如何再次从列表框中删除条目?非常感谢您的所有帮助!

private CheckBox[] checkboxes;
private string[] cbx;

checkboxes = new[] {checkBox1, checkBox2, checkBox3};

checkBox1.Tag =  "string1"; 
checkBox2.Tag =  "string2";
checkBox3.Tag =  "string3"; 

foreach (var checky in checkboxes)
{
   checky.CheckedChanged += CheckBox_CheckedChanged;
}

private void CheckBox_CheckedChanged(object sender, EventArgs e)
{
   cbx = checkboxes.Where(checky => checky.Checked)
  .Select(checky => checky.Tag)
  .Cast<string>()
  .ToArray();

  listBox4.Items.AddRange(cbx);

 }





【问题讨论】:

    标签: c# linq checkbox


    【解决方案1】:

    执行此操作的一种方法是删除列表框中的所有内容,然后将选中的项目添加到列表框中:

    private void CheckBox_CheckedChanged(object sender, EventArgs e)
    {
        cbx = checkboxes.Where(checky => checky.Checked)
            .Select(checky => checky.Tag)
            .Cast<string>()
            .ToArray();
    
        listBox4.Items.Clear(); // here!
        listBox4.Items.AddRange(cbx);
    }
    

    任何时候选中任何复选框,您都会删除列表框中的所有内容,无论它们是否被选中。然后获取当前选中的项目并将它们添加到列表框中。

    【讨论】:

      猜你喜欢
      • 2011-06-15
      • 2017-04-22
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      相关资源
      最近更新 更多