2011-12-17 26 views
1

我在編程c#GUI,我有2種形式。c#gui - 在表單之間導航

Form1是我的主要形式,它有一個打開form2的按鈕。

當點擊form1中的按鈕時,我隱藏form1,創建一個新對象form2並顯示form2

我在form2有一個後退按鈕。我希望此按鈕的行爲關閉form2,並再次顯示隱藏的form1

我該怎麼辦?

回答

1

讓您的form1訂閱VisibleChange事件form2並採取相應行動。它將不得不「記住」form2是否可見或隱藏(或直接查詢)。

的替代方案是:

form2需要form1參考。

這可以通過多種方式完成 - 將它傳遞給構造函數參數,添加一個屬性併爲其分配form1

這兩種方式中的任何一種都會將這些形式緊緊地連接在一起(壞事)。

1

你試過

 Form1.Visible = true; 
    Form1.Activate(); 

然後在Form1 VisibleChanged事件,你只要寫

 Form2.Close(); 
+0

有沒有'Activate'方法由'Form'類暴露,那另需'形式「作爲參數。 – ebb 2011-12-17 20:14:08

+0

對不起,我寫了OnLoad事件,但我的意思是VisibleChanged事件,因爲你的表單已經加載,如果你只改變表單的可見性,它將不會執行該部分。 – phadaphunk 2011-12-17 20:14:21

+0

Youre right @ebb我正在考慮'AddOwnedForm'方法,它並不完全用於相同的原因^^我會更新我的答案,謝謝 – phadaphunk 2011-12-17 20:16:28