我正在創建一個windows窗體程序。首先使用登錄屏幕,然後進入主窗口,選擇從那裏註銷並作爲另一個用戶登錄。如何隱藏後再次顯示相同的確切形式?
當我使用註銷選項時,我將如何顯示與以前相同的隱藏登錄表單?我覺得從頭開始創建一個新的LogInForm是浪費內存。
我正在創建一個windows窗體程序。首先使用登錄屏幕,然後進入主窗口,選擇從那裏註銷並作爲另一個用戶登錄。如何隱藏後再次顯示相同的確切形式?
當我使用註銷選項時,我將如何顯示與以前相同的隱藏登錄表單?我覺得從頭開始創建一個新的LogInForm是浪費內存。
那麼你可以簡單地在第一個表單上調用.Show()
(前提是你在應用程序內的某處保留對它的引用)。當然,實際上,您需要查看用戶執行此特定功能的頻率。猜測,創建一個新的登錄表單可能完全沒問題。
LoginForm.Show()可以正常工作,但如果您在成功登錄後未處理表單,它將加載先前輸入的詳細信息。 此外,在調用表單或重新創建表單時沒有「內存浪費」。
你必須小心最後一條語句。如果開發人員創建了一些表單並在關閉後保留其引用,則該對象將不會在應用程序的生命週期中處理,從而可能導致OutOfMemoryException異常。 – zaitsman
@zaitsman這就是爲什麼我要他處置。如果表單被處置並創建,它與內存消耗無關。顯然,.close()和.dispose() –
使用這個在你的MainForm:不管你想要(在Form1)
Form2 f2;
public void Form1()
{
InitializeComponent();
f2 = new Form2();
}
使用f2.Show();或者f2.ShowDialog();
在Form2中,當您關閉表單時,使用this.Hide();
希望得到這個幫助!
通常情況下,如果不使用內存,您永遠不想保留內存... – Phil1970
_「這是一種內存浪費」_,更具體地說_GDI resources_,如果您不使用GUI對象他們。無論計算機中的RAM數量多少,GDI都有一個限制。也許你的意思是_waste CPU_重新創建窗口? (雖然它必須是一個相當大的登錄窗口) – MickyD