关于内存占用的问题.

miky 2003-10-06 11:40:29
有2个问题
1.我的程序里有十几个form,由Sub Main() 启动,是不是启动时这十几个form都装入内存了?
2.在form里用unload me卸载窗口和在外面用unload TheForm卸载有什么不同吗?
...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
廖雪峰 2003-10-07
  • 打赏
  • 举报
回复
不是

显式调用:
set frm = new xxxfrom;
frm.show
才调入内存

unload me
和unload frm
一样

不要用Form1.show语句
虽然也可以,但不能获得这个form的引用,其他的form就不能操作他
最好先定义
dim frm as frmXXX

某个时候调用
set frm=new frmXXX
frm.show

用完
unload frm
set frm=nothing
廖雪峰 2003-10-07
  • 打赏
  • 举报
回复
你的unload frm:
vb会自动执行一个load frm
然后unload frm
廖雪峰 2003-10-07
  • 打赏
  • 举报
回复
vb中规定(from MSDN->Visual Basic->Programmer's Guide):

如果引用一个窗体对象,比如写:
frm.button1.Caption="OK"

vb首先检查frm是否已创建,如果未创建,自动创建窗体,然后执行操作。

假定已经unload frm了
但是vb会再次加载此窗体,然后执行代码。

因此,为了避免vb自作聪明的创建窗体,对一个窗体
unload frm 后立即写
set frm=nothing

这样再次引用会导致错误:"对象未设置"

所以microsoft建议你不要直接引用窗体名如Form1.show(这样用户不关闭你永远也关闭不了它)
要先定义窗体变量
miky 2003-10-07
  • 打赏
  • 举报
回复
那为什么我在form里已经执行过unload me了,在外面再执行 Unloan frm 却不出错?

7,763

社区成员

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

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