我有两个WinForm对象,form1
和form2
。我想要做的是:2种形式之间的相互作用(隐藏/显示)
a。当用户点击form1
上的按钮时,该按钮将被隐藏,并且将出现form2
的新实例。所以我做了:
form1.Hide();
form2 new_session = new form2();
form2.Show();
b。从form2
,我希望用户能够点击一个按钮来恢复他从中生成form2
实例的原始号码为form1
。基本上,类似于:
form2.Hide();
form1.Show();
显然,form1
在当前上下文中不存在。我知道解决这个问题的解决方案是建立在我指定form1
的form2
的属性,这样我就可以再次把它叫做:
form1 pMyForm;
public form1 myForm
{
get{return pMyForm;}
set{pMyForm = value;}
}
之前展现form2
...
form2 new_session = new form2();
form2.myForm = this;
但是,我觉得有一个更正确的方法来做到这一点。我想我可以找到form1
到form2
的财产ParentForm
,但我找到了null
。同时,我试图将form1
分配给form2
的属性Parent
,但我收到错误Top-level control cannot be added to a control
。
对于如何更好地处理这个问题你有什么建议吗?
这可以帮助你! http://stackoverflow.com/questions/7273862/c-sharp-how-to-make-two-forms-reference-each-other –
您已经知道如何做到这一点,因为您已经使用了通用解决方案解决这个问题。您添加到Form2的那个按钮知道如何在Form2类中运行代码。但是Button类并不知道有关Form2类的任何信息。只要以完全相同的方式来做就可以:举办一个活动。 –