复选框不会取消选中功能

时间:2013-12-29 23:57:34

标签: c# .net winforms

public void UncheckCheckbox()
{
    checkBox1.Checked = false;
    MessageBox.Show("Unchecked!");
}

当我尝试使用此代码取消选中我的复选框时,它保持不变。有人能告诉我如何才能做到这一点吗?

修改

它仍然不起作用。消息框显示,但checkBox不会更改。

编辑2

当我尝试使用按钮(没有该功能)直接取消选中该复选框时,它确实有效,但我不明白为什么该功能没有。我尝试了你的所有建议,但没有任何帮助我。

编辑3

我的主窗体(Form1)是一个MDI容器。当Form2(子)关闭时,它会运行我之前向您展示过的代码。我为孩子使用的代码是:

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
    Form1 ParentForm1 = new Form1();
    ParentForm1.UncheckCheckbox();
}

我认为这不会有问题,因为当我尝试从Form1本身运行该函数时,复选框会保持检查状态。

4 个答案:

答案 0 :(得分:2)

当您设置Checked = false;时,它会调用CheckedChanged event

您必须在CheckedChanged事件中包含再次勾选该复选框的代码。

答案 1 :(得分:1)

您的代码应该有效。试试这个.Update();这应该重绘表格。

答案 2 :(得分:1)

你可能是从另一个线程调用它,在这种情况下它不起作用。 搜索跨线程调用和/或调用控件。

答案 3 :(得分:0)

Form2_FormClosing事件创建父表单的新实例,并在其上设置选中的值,而不是您想要的现有父表单。