请问这几个方法的区别

Think Nothing 2003-08-20 01:55:26
在FORM控件中又如下方法:
form.visible = false
form.hide
unload form
以上方法均能实现隐藏FORM的功能,请问有何区别?
...全文
25 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
huang_yi_cn 2003-08-20
  • 打赏
  • 举报
回复
上面的同仁基本上已经讲清楚了,但还漏掉了一点:那就是Unload只是将窗体本身卸掉,但并不一定会激发Terminate事件,也就是说Unload之后,窗体的变量区还没有被摧毁。例如:
Form1中
dim i as integer
sub Form_load()中
i=30

end sub

然后如果现在将Form1Unload再在另一个窗体或模块中进行如下操作
debug.print form1.i
这时你会发现输出结果为30,而不是0
iiboy 2003-08-20
  • 打赏
  • 举报
回复
如果该窗口的内容在以后的程序中还要引用的话,可以使用:窗口.Hide
如果想让窗口从内存中移去的话,可以使用:Unload 窗体名
至于:窗口.Hide和窗口.Visible=False两种方法都是实现同样的功能,所以使用哪一种就随你的习惯了.
TechnoFantasy 2003-08-20
  • 打赏
  • 举报
回复
假设Form1(主窗体)有一下代码代码:

Dim x As Form2

Private Sub Command1_Click()
Set x = New Form2

Load x
x.Visible = True
End Sub

Private Sub Command2_Click()
Unload x
End Sub

Private Sub Command3_Click()
x.Visible = False
End Sub

点击command1创建一个Form2的实例,然后分别点击command2关闭窗体和点击command3关闭窗体,结果是点击command2程序会退出,而command3不会,这是因为点击command2窗体x已经被卸载了。
zyl910 2003-08-20
  • 打赏
  • 举报
回复

Unload 语句


从内存中卸载窗体或控件。

语法

Unload object

object 所在处是要卸载的 Form 对象或控件数组元素的名称。

说明

当所占内存另有它用,或需要重新设置窗体、控件的属性为初始值时,就有必要卸载窗体或控件。

在卸载窗体前,会发生 Query_Unload 事件过程,然后是 Form_Unload 事件过程。在其中任一过程中设置 cancel 参数为 True 可防止窗体被卸载。若为 MDIForm 对象,先发生 MDIForm 对象的 Query_Unload 事件过程,接着是各 MDI 子窗体 的 Query_Unload 事件过程和 Form_Unload 事件过程,最后是 MDIForm 对象的 Form_Unload 事件过程。

当窗体卸载之后,所有在运行时 放到该窗体上的控件都不再是可访问的。在设计时放到该窗体上的控件将保持不变;但是,当窗体重新加载时,在运行时对这些控件及其属性的任何更改将丢失。所有对于窗体属性的更改也将丢失。对窗体上任何控件的访问会导致窗体重新加载。

注意 在卸载窗体时,只有显示的部件被卸载。和该窗体模块相关联的代码还保持在内存中。

只有在运行时添加到窗体上的控件数组元素才能用 Unload 语句卸载。重新加载被卸载的控件时,其属性会被重新初始化。
aiur2000 2003-08-20
  • 打赏
  • 举报
回复
1。不可见
2。隐藏
3.卸载
TechnoFantasy 2003-08-20
  • 打赏
  • 举报
回复
form.visible = false和
form.hide是相同的窗体保持在内存中,只是不可见。
而unload form是将窗体实例从内存中卸载出去。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧