使用c#一键检查复选框列表中的所有复选框
本文关键字:复选框 列表 一键 检查 使用 | 更新日期: 2023-09-27 17:49:33
我想有一个按钮,一旦点击,它会选择我的checklistbox中的所有复选框。我已经搜索了可能的答案,但我总是看到asp.net和javascript的例子。我在c#中使用Windows窗体。感谢您的回复
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;
}
}
}