2013-12-11 85 views
0

桌面應用程序中form.Close()和form.Hide()之間的區別是什麼。差異form.Close()和form.hide()

我知道Form_Close事件不會在form.Hide()方法中觸發其他區別。

有人更快嗎?

+0

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.closing(v=vs.110).aspx –

回答

4

form.Close()從存儲器中卸載的形式,並使其可進行垃圾集;您不能再與代碼中的表單進行交互。

form.Hide()只是隱藏表單,但仍然可以在代碼中與它進行交互。


所以它不是一個真正的問題,其中一個是快,而是「你真的採用這種形式完成,或者沒有」?

1

僅隱藏屏幕上的表單。關閉當然會關閉表單。如果你想擺脫你不想使用的表單,那麼你應該使用關閉。隱藏和關閉是不同的事情。

1

同上...通常,您打開表單的方式決定使用哪種方式。如果使用.Show(),表單加載並顯示時調用代碼會繼續。如果使用ShowDialog(),則在窗體加載並顯示時停止調用代碼。當您隱藏被調用表單時,調用代碼會恢復到下一個語句。

這裏是第二種情況的一個示例:

 Dim frm As New frmSearch2 
    frm.inFormName = "frmFacility" 
    frm.ShowDialog(Me) 
    If frm.outPrimaryKey.Length > 0 Then 
     frmMain.Open_Form("frmFacility", frm.outPrimaryKey) 
    End If 
    frm.Close 
    frm = Nothing 

outPrimaryKey是表單級公共變量。您也可以解決表單上的任何控件。