编程技能测试员(问题)v2.0

时间:2009-02-04 06:50:40

标签: c# winforms

如果您还没有阅读first问题那么知道要赶上速度。现在,我该如何清除这些复选框?我尝试使用@colithium告诉我用于检查所有复选框状态的相同方法,但是当我运行程序并单击清除时出现以下运行时错误:

无法将'System.Windows.Forms.Button'类型的对象强制转换为'System.Windows.Forms.CheckBox'。

3 个答案:

答案 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;  
        }
    }
}