差异form.Close()和form.hide()

时间:2013-12-11 17:43:30

标签: vb.net

桌面应用程序中form.Close()和form.Hide()之间有什么区别。

我知道Form.Close事件不会在form.Hide()方法中触发其他差异。

有人更快吗?

4 个答案:

答案 0 :(得分:5)

form.Close()从内存中卸载表单并使其可用于垃圾回收;您无法再与代码中的表单进行交互。

form.Hide()只是隐藏了表单,但您仍然可以在代码中与其进行交互。


所以这不是一个问题,哪个更快,而是“你真的使用过这个表格吗?”

答案 1 :(得分:3)

隐藏使表单对用户不可见。关闭实际上关闭它并调用dispose。

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

“当表单关闭时,对象中创建的所有资源都将关闭,表单将被处理。”

答案 2 :(得分:1)

隐藏仅隐藏屏幕上的表单。关闭当然是关闭表格。如果你想摆脱你不想再使用的表单,那么你应该使用Close。隐藏和关闭是不同的事情。

答案 3 :(得分: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是表单级公共变量。您还可以解决表单上的任何控件。