2016-12-24 110 views
-3

我正在創建一個windows窗體程序。首先使用登錄屏幕,然後進入主窗口,選擇從那裏註銷並作爲另一個用戶登錄。如何隱藏後再次顯示相同的確切形式?

當我使用註銷選項時,我將如何顯示與以前相同的隱藏登錄表單?我覺得從頭開始創建一個新的LogInForm是浪費內存。

+0

通常情況下,如果不使用內存,您永遠不想保留內存... – Phil1970

+0

_「這是一種內存浪費」_,更具體地說_GDI resources_,如果您不使用GUI對象他們。無論計算機中的RAM數量多少,GDI都有一個限制。也許你的意思是_waste CPU_重新創建窗口? (雖然它必須是一個相當大的登錄窗口) – MickyD

回答

1

那麼你可以簡單地在第一個表單上調用.Show()(前提是你在應用程序內的某處保留對它的引用)。當然,實際上,您需要查看用戶執行此特定功能的頻率。猜測,創建一個新的登錄表單可能完全沒問題。

2

LoginForm.Show()可以正常工作,但如果您在成功登錄後未處理表單,它將加載先前輸入的詳細信息。 此外,在調用表單或重新創建表單時沒有「內存浪費」。

+0

你必須小心最後一條語句。如果開發人員創建了一些表單並在關閉後保留其引用,則該對象將不會在應用程序的生命週期中處理,從而可能導致OutOfMemoryException異常。 – zaitsman

+0

@zaitsman這就是爲什麼我要他處置。如果表單被處置並創建,它與內存消耗無關。顯然,.close()和.dispose() –

0

使用這個在你的MainForm:不管你想要(在Form1)

Form2 f2; 
public void Form1() 
{ 
    InitializeComponent(); 
    f2 = new Form2(); 
} 

使用f2.Show();或者f2.ShowDialog();

在Form2中,當您關閉表單時,使用this.Hide();

希望得到這個幫助!

相關問題