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