通过一个表单调用类的设置值时出现奇怪的输出,但是从另一个表单中检索另一个表单时,我从同一个类中检索时得到不同的值。
我知道我得到一个奇怪的输出的原因:我有两个表格和一个类。当表单1打开表单2的对话框时,它会打开。然后在form2中,我调用一个类方法并将其属性设置为true
。
退出表单2后,表单1尝试检索表单2设置的值,它似乎有false
而不是true
。有解决方案吗?
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog();
Class1 c1 = new Class1();
textBox1.Enabled = c1.getIsEnabled();
}
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Class1 c1 = new Class1();
c1.setIsEnabled(true);
this.Close();
}
class Class1
{
Boolean isEnabled;
public void setIsEnabled(Boolean isEnabled)
{
this.isEnabled = isEnabled;
}
public Boolean getIsEnabled()
{
return this.isEnabled;
}
}
答案 0 :(得分:1)
您需要在表单之间共享同一个类实例。
您在Form1中创建一个新实例,然后在Form2中创建一个新实例。这是同一类的两个不同实例。您已在Form1中的实例上设置布尔值,并且您已在Form2的实例中设置布尔值。
史蒂夫指出。你真的需要调查OO。