选中复选框列表中的所有复选框,只需单击一下c#

时间:2012-12-27 08:15:39

标签: c# winforms button checkbox checklistbox

我希望有一个按钮,一旦点击,它将选中我的核对表框中的所有复选框。我搜索了可能的答案,但我总是看到asp.net和javascript的例子。我在c#中使用Windows表单。感谢您的回复。

6 个答案:

答案 0 :(得分:46)

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

试试这个......

    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
    }

答案 3 :(得分:2)

多次提出这个问题后,我决定用扩展方法为自己彻底解决这个问题。

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

答案 4 :(得分:0)

试试这个:

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

答案 5 :(得分:0)

我要做的是将其放在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;
        }
    }
}