【发布时间】:2017-06-05 17:08:23
【问题描述】:
我有一个简单的函数,它返回复选框是否被选中,另一个类的另一个方法使用这个信息。
每当我在运行表单之前将“已检查”属性更改为 false 时,我的代码都会按预期工作并将已检查属性的布尔变量视为 false。但是,如果我在表单实际运行时尝试更改复选框,我的代码总是将选中的属性视为 true,无论该框是否被选中。
我的代码不是 Form1_Load 一次性的东西,它是每次单击按钮时都会调用的函数。 (当然,这个按钮是在取消选中复选框后单击的,它仍然将复选框选中的变量视为真,即使它应该是假的。)
字面意思是我的代码:
(我知道这看起来像是一种奇怪的检查方式,但由于类到类的引用问题而需要它)
public bool Check1()
{
check1 = this.checkBox1.Checked;
return check1;
}
检查1();无论 checkBox1 是否被选中,总是返回 true。但同样,如果我在运行表单之前取消选中该复选框,它会返回 false。
有什么建议让它正确更新吗?
编辑:
Block_Map_Array.Form1 f = new Block_Map_Array.Form1();
它在新实例中被调用。
【问题讨论】:
-
这是 WPF、WinForms、MVC 还是 WebForms?
-
您能否提供与
check1的完整互动或分配?它可以设置在其他地方吗? -
在我们提供帮助之前,请先了解更多详情
-
这可以绑定到 CheckBox.OnCheckedChanged 方法吗?从那里运行 Check1() ?
-
好吧,那就是问题所在。您不是在处理正在显示的表单的同一实例。您需要将表单实例传递给其他类。