2012-04-18 30 views
0

我想要做的事喜欢这里的答案:如何将初始表单上选定的值传递给主表单?

How can I close a login form and show the main form without my application closing?

...但我想通过初步形成下一个(主)窗体上选择的值。如果我在主表单上调用重载的构造函数,那么我在哪里存储值(在初始表单被解除和被调用的主表单之间)?

OTOH如果不是使用program.cs文件来做到这一点,我在主窗体的Load()事件中创建了“初始窗体”(有更好的地方),我可以做这样的事情,但不可否认,它看起来相当笨拙:

0)将主窗体的大小设置为0,0以隐藏它 1)显示“初始”窗体/模式对话框,并存储用户选择的值(在按钮中单击事件)在一个窗体全局变量中 2)初始窗体/模式对话框关闭后,将主窗体的大小设置回它应该是的(除非模态结果为<>确定,在这种情况下,我关闭主窗体和应用程序)

我知道有更好的方法来做到这一点...

回答

2

您不必将值传递给主窗体。就像您的链接解释,首先打开您的主窗体。然后你的主表单可以打开另一个表单。这种形式可以将信息放置在主窗体可以访问的公共属性中。由于主窗体控制着其他窗体的生命周期,主窗体获取其他窗体公有属性中的信息,然后关闭另一窗体。

string myVariable; 

using (OtherForm otherForm = new OtherForm()) 
{ 
    otherForm.ShowDialog(); 
    myVariable = otherForm.OtherVariable; 
} 
相关问题