使用c#一键检查复选框列表中的所有复选框

本文关键字:复选框 列表 一键 检查 使用 | 更新日期: 2023-09-27 17:49:33

我想有一个按钮,一旦点击,它会选择我的checklistbox中的所有复选框。我已经搜索了可能的答案,但我总是看到asp.net和javascript的例子。我在c#中使用Windows窗体。感谢您的回复

使用c#一键检查复选框列表中的所有复选框

for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
    checkedListBox1.SetItemChecked(i, true);
}

从c#代码中调用一个方法并编写这段代码,然后您可以选中/取消选中它们。这将选中或取消选中复选框列表中存在的所有复选框。希望能有所帮助。

foreach (ListItem item in CheckBoxList.Items)
{
    item.Selected = true;    
}

在多次遇到这个问题后,我决定用一个扩展方法来一劳永逸地解决它。

public static class Extensions
{
    public static void CheckAll(this CheckedListBox checkedListBox, bool check)
    {
        for (int i = 0; i < checkedListBox.Items.Count; i++)
            checkedListBox.SetItemChecked(i, check);
    }
}
MyCheckedListBox.CheckAll(true);

试试这个…

    protected void chk_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox[] boxes = new CheckBox[7];
        boxes[0] = this.CheckBoxID;
        boxes[1] = this.CheckBoxID;
        boxes[2] = this.CheckBoxID;
        boxes[3] = this.CheckBoxID;
        boxes[4] = this.CheckBoxID;
        boxes[5] = this.CheckBoxID;
        boxes[6] = this.CheckBoxID; //you can add checkboxes as you want
        CheckBox chkBox = (CheckBox)sender;
        string chkID = chkBox.ID;
        bool allChecked = true;
        if (chkBox.Checked == false)
            allChecked = false;
        foreach (CheckBox chkBoxes in boxes)
        {
            if (chkBox.Checked == true)
            {
                if (chkBoxes.Checked == false)
                    allChecked = false;
            }
        }
        this.CheckBoxIDALL.Checked = allChecked; //Here place the main CheckBox
    }

试试这个:

 foreach(Control c in this.Controls) {
    if (c.GetType() == typeof(CheckBox)) {
       ((CheckBox)c).Checked = true;
    }
 }

我所做的是把它放在一个tableLayoutPanel中,我固定了第三列的所有复选框,并添加了事件:

private void cbCheckAllCHECKBOXs_CheckedChanged(objects sender, EventArgs e)
{
    if (cbCheeckAllCHECKBOXs.Checked)
    {
        for (int i = 0; i < tlpCHECKBOXsControlPanel.RowCount; i++)
        {
            ((System.Windows.Forms.CheckBox)(tlpCHECKBOXsControlPanel.GetControlFromPosition(3, i))).Checked = true;
        }
    }
}