我有兩個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類的任何信息。只要以完全相同的方式來做就可以:舉辦一個活動。 –