如果您还没有阅读first问题那么知道要赶上速度。现在,我该如何清除这些复选框?我尝试使用@colithium告诉我用于检查所有复选框状态的相同方法,但是当我运行程序并单击清除时出现以下运行时错误:
无法将'System.Windows.Forms.Button'类型的对象强制转换为'System.Windows.Forms.CheckBox'。
答案 0 :(得分:6)
我猜你在所有控件上运行foreach并忘记查看控件是否实际上是一个复选框。
foreach (Control c in this.Controls) {
CheckBox cb = c as CheckBox;
if (cb!=null) {
//do your logic
}
}
答案 1 :(得分:1)
将CheckBox.Checked设为false。如果这不是您所需要的,请在问题中提供更多信息。
答案 2 :(得分:1)
我认为你的方法看起来像这样:
private void clearButton_Click(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)sender;
cb.Checked = false;
}
在这种情况下,“发件人”是清除按钮,而不是复选框。 借用Stormenet的回答:
private void clearButton_click(object sender, EventArgs e)
{
foreach (Control c in this.Controls)
{
CheckBox cb = c as CheckBox;
if (cb != null)
{
cb.Checked = false;
}
}
}