2
任何時候我想要顯示一個新窗體,我創建一個新窗體對象並隱藏當前窗體。 例如:在窗體之間切換
this.Hide();
new Form2().Show();
這樣,一個新的對象狀態越來越創建了個遍,而舊的形式仍在運行,但隱藏的地方。
我想知道最合適的方法是什麼,我一直這樣做很長時間,任何時候我都會這樣做,我覺得我做錯了。我的意思是我們如何訪問前一個對象並將其設置爲顯示而不是創建一個新對象。
任何時候我想要顯示一個新窗體,我創建一個新窗體對象並隱藏當前窗體。 例如:在窗體之間切換
this.Hide();
new Form2().Show();
這樣,一個新的對象狀態越來越創建了個遍,而舊的形式仍在運行,但隱藏的地方。
我想知道最合適的方法是什麼,我一直這樣做很長時間,任何時候我都會這樣做,我覺得我做錯了。我的意思是我們如何訪問前一個對象並將其設置爲顯示而不是創建一個新對象。
使用Application.OpenForms屬性來獲得已經打開的窗體對象並顯示。
OpenForms屬性表示由應用程序擁有的表格 的只讀集合。此集合可以通過索引 的位置或表單的名稱進行搜索。
Form1 frm1 = Application.OpenForms["Form1"] as Form1 ;
if (frm1 != null)
{
frm1.Show();
}
這工作相當好哈比卜,我認爲解決了我的問題,我會接受你的答案。 – Transcendent
寫全局/靜態FormManager類跟蹤此。併爲表單創建按需邏輯。 –
您可以使用[對象池模式](http://en.wikipedia.org/wiki/Object_pool_pattern)來管理您創建的所有表單,並擁有一種方法來取消表單,該表單檢查表單實例是否可用,以及如果不是它創建一個 –