11

我正在开发一个 Windows 窗体应用程序。我想要check/uncheckchecklistbox中的所有复选框。

我正在使用以下代码动态生成复选框。

    var CheckCollection = new List<CheckedBoxFiller>();
    foreach (DataRow dr in dt.Rows)
        CheckCollection.Add(new CheckedBoxFiller {
                                Text = dr["ImageName"].ToString(),
                                Value = dr["ImageId"].ToString()
        });
    chklbEvidenceTags.DataSource = CheckCollection;
    chklbEvidenceTags.DisplayMember = "Text";
    chklbEvidenceTags.ValueMember = "Value";

这是 CheckboxFiller 类

private class CheckedBoxFiller {
    public string Text { get; set; }
    public string Value { get; set; }
}

现在我想check/Uncheck all checkboxes。我怎样才能做到这一点?

任何帮助都会很有用。

4

4 回答 4

22

我找到了解决方案。

 for (int i = 0; i < chklistbox.Items.Count; i++)
      chklistbox.SetItemCheckState(i, (state ? CheckState.Checked : CheckState.Unchecked));

stateboolen价值。

于 2012-10-25T06:54:05.740 回答
16

如果您有一个很大的项目列表,这种方法可能会更有效地取消选中项目。它只需要您循环浏览实际检查的项目:

    private void UncheckAllItems()
    {
        while (chklistbox.CheckedIndices.Count > 0)
            chklistbox.SetItemChecked(chklistbox.CheckedIndices[0], false);
    }

如果您在整个项目中使用多个 CheckedListBox 控件并希望更进一步,可以将其添加为扩展方法:

    public static class AppExtensions
    {
        public static void UncheckAllItems(this System.Windows.Forms.CheckedListBox clb)
        {
            while (clb.CheckedIndices.Count > 0)
                clb.SetItemChecked(clb.CheckedIndices[0], false);
        }
    }

扩展方法调用:

    chklistbox.UncheckAllItems();
于 2013-12-18T14:51:29.063 回答
3

选中/取消选中以下代码编写的所有列表项:

if (checkBox1.Checked)
    {
        for (int i = 0; i < chkboxlst.Items.Count; i++)
        {
            chkboxlst.SetItemChecked(i, true);
        }
    }
    else
    {
        for (int i = 0; i < chkboxlst.Items.Count; i++)
        {
            chkboxlst.SetItemChecked(i, false);
        }
    }
于 2016-03-22T13:23:30.037 回答
-3

取消选中/选中所有 listItems 执行以下代码:

 boolean state =false;//False->Uncheck,true->Check

 for (int i = 0; i < chklistbox.Items.Count; i++)
      chklistbox.SetItemCheckState(i, (state ? CheckState.Checked : CheckState.Unchecked));
于 2014-12-18T13:17:45.467 回答