2015-06-27 35 views
0

我有兩個WinForm對象,form1form2。我想要做的是:2種形式之間的相互作用(隱藏/顯示)

a。當用戶點擊form1上的按鈕時,該按鈕將被隱藏,並且將出現form2的新實例。所以我做了:

form1.Hide(); 
form2 new_session = new form2(); 
form2.Show(); 

b。從form2,我希望用戶能夠點擊一個按鈕來恢復他從中生成form2實例的原始號碼爲form1。基本上,類似於:

form2.Hide(); 
form1.Show(); 

顯然,form1在當前上下文中不存在。我知道解決這個問題的解決方案是建立在我指定form1form2的屬性,這樣我就可以再次把它叫做:

form1 pMyForm; 
public form1 myForm 
{ 
get{return pMyForm;} 
set{pMyForm = value;} 
} 

之前展現form2 ...

form2 new_session = new form2(); 
form2.myForm = this; 

但是,我覺得有一個更正確的方法來做到這一點。我想我可以找到form1form2的財產ParentForm,但我找到了null。同時,我試圖將form1分配給form2的屬性Parent,但我收到錯誤Top-level control cannot be added to a control

對於如何更好地處理這個問題你有什麼建議嗎?

+0

這可以幫助你! http://stackoverflow.com/questions/7273862/c-sharp-how-to-make-two-forms-reference-each-other –

+2

您已經知道如何做到這一點,因爲您已經使用了通用解決方案解決這個問題。您添加到Form2的那個按鈕知道如何在Form2類中運行代碼。但是Button類並不知道有關Form2類的任何信息。只要以完全相同的方式來做就可以:舉辦一個活動。 –

回答