桌面应用程序中form.Close()和form.Hide()之间有什么区别。
我知道Form.Close事件不会在form.Hide()方法中触发其他差异。
有人更快吗?
答案 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是表单级公共变量。您还可以解决表单上的任何控件。