2012-04-18 31 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; 
} 
相關問題