C# 如何在Winform中选择和取消选择复选框?
我的代码只做如果chckAll.Checked比使所有复选框选中。。。我想要实现的是,当任何复选框未选中时,在选中所有复选框后,使chckAll未选中。。。。此外,如果一个接一个地选中所有复选框,则会使chckAll处于选中状态…我如何才能做到这一点C# 如何在Winform中选择和取消选择复选框?,c#,winforms,checkbox,C#,Winforms,Checkbox,我的代码只做如果chckAll.Checked比使所有复选框选中。。。我想要实现的是,当任何复选框未选中时,在选中所有复选框后,使chckAll未选中。。。。此外,如果一个接一个地选中所有复选框,则会使chckAll处于选中状态…我如何才能做到这一点 private void chckAll_CheckedChanged(object sender, EventArgs e) { if (chckAll.Checked) {
private void chckAll_CheckedChanged(object sender, EventArgs e)
{
if (chckAll.Checked)
{
foreach (Control ctrl in checkBoxesPanel3.Controls)
{
CheckBox chkboxes = ctrl as CheckBox;
if (chkboxes != null)
{
chkboxes.Checked = true;
}
}
}
}
将以下事件添加到除chckAll之外的所有其他复选框
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckFlg = true;
if (!CheckAllFlg)
{
chckAll.Checked = checkBoxesPanel3.Controls.OfType<CheckBox>().Where(x => x.Name != "chckAll").All(c => c.Checked);
}
CheckFlg = false;
}
private void chckAll_CheckedChanged(object sender, EventArgs e)
{
CheckAllFlg = true;
if (!CheckFlg)
{
foreach (CheckBox ctrl in checkBoxesPanel3.Controls.OfType<CheckBox>().Where(x => x.Name != "chckAll"))
{
ctrl.Checked = chckAll.Checked;
}
}
CheckAllFlg = false;
}
将以下事件添加到除chckAll之外的所有其他复选框
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
CheckFlg = true;
if (!CheckAllFlg)
{
chckAll.Checked = checkBoxesPanel3.Controls.OfType<CheckBox>().Where(x => x.Name != "chckAll").All(c => c.Checked);
}
CheckFlg = false;
}
private void chckAll_CheckedChanged(object sender, EventArgs e)
{
CheckAllFlg = true;
if (!CheckFlg)
{
foreach (CheckBox ctrl in checkBoxesPanel3.Controls.OfType<CheckBox>().Where(x => x.Name != "chckAll"))
{
ctrl.Checked = chckAll.Checked;
}
}
CheckAllFlg = false;
}
此外,如果一个接一个地选中所有复选框,则会使chckAll处于选中状态…我如何才能做到这一点?例如,我有5个复选框和一个chckAll复选框。。。。如果您的代码中有任何复选框未选中,则会使chckAll复选框未选中…但是如果我逐个选中所有五个复选框,会怎么样?当我完成除chckAll之外的检查时,我也想自动选择chckAll框…您的
chckAll
复选框是否也在checkBoxesPanel3
中?是的,它也在我的checkBoxesPanel3Ok中,作为我的更新代码,您可以按照您指定的方式指定chckAll
复选框的名称,如果逐个选择所有复选框,然后选择chckAll,则该复选框也会起作用……我如何才能做到这一点?例如,我有5个复选框和一个chckAll复选框。。。。如果您的代码中有任何复选框未选中,则会使chckAll复选框未选中…但是如果我逐个选中所有五个复选框,会怎么样?当我完成除chckAll之外的检查时,我也要自动选择chckAll框…您的chckAll
复选框是否也在checkBoxesPanel3
中?是的,它也在我的checkBoxesPanel3中。那么,作为我的更新代码,您可以按照您给定的方式给出chckAll
复选框的名称,它会起作用