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

Posted

技术标签:

【中文标题】使用c#一键检查复选框列表中的所有复选框【英文标题】:Check all checkboxes in checkboxlist with one click using c# 【发布时间】:2012-12-12 15:43:47 【问题描述】:

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

【问题讨论】:

@Likurg,我试过了,看起来不错,但对我不起作用:for(int i = 1; i < checkedlistBox.Items.Count; i++) checkedlistBox.SetItemChecked (i, true); 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

我所做的是将它放在 tableLayoutPanel 中,我修复了第 3 列中的所有复选框并添加了事件:

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;
        
    

【讨论】:

【参考方案3】:

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

foreach (ListItem item in CheckBoxList.Items)

    item.Selected = true;    

【讨论】:

【参考方案4】:

试试这个...

    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
    

【讨论】:

【参考方案5】:

试试这个:

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

【讨论】:

【参考方案6】:
for (int i = 0; i < checkedListBox1.Items.Count; i++)

    checkedListBox1.SetItemChecked(i, true);

【讨论】:

我之前尝试过这段代码,但没有用。现在它是。,Magic.. :) 谢谢@SekaiCode。

以上是关于使用c#一键检查复选框列表中的所有复选框的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 检查 datagridview 中的多个复选框

用于检查其下方列表的 Jquery 复选框

在 c# 中单击 SelectAll 时的 CheckAll 复选框

如何检查表格中的所有复选框并使用JS为每个复选框做一项工作

如何在Angular 2中选择ngFor中的所有过滤复选框?

从 JSON 数据检查列表视图中的复选框