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本身运行该函数时,复选框会保持检查状态。
答案 0 :(得分:2)
当您设置Checked = false;
时,它会调用CheckedChanged event。
您必须在CheckedChanged事件中包含再次勾选该复选框的代码。
答案 1 :(得分:1)
您的代码应该有效。试试这个.Update();这应该重绘表格。
答案 2 :(得分:1)
你可能是从另一个线程调用它,在这种情况下它不起作用。 搜索跨线程调用和/或调用控件。
答案 3 :(得分:0)
Form2_FormClosing事件创建父表单的新实例,并在其上设置选中的值,而不是您想要的现有父表单。