窗体Form的模块级变量(模块级Public、Private、Dim;函数级Static)问题?

lyllxfly 2005-03-04 09:36:12
窗体Form的模块级变量(模块级Public、Private、Dim;函数级Static)问题?

你会发现属窗体Form的模块级变量在 Unload FormXXX 后,其模块级变量的值并不消失;
可直接引用 FormXXX.varXXX Public模块级;FormXXX.Show 后,模块级Public、Private、Dim、函数级Static也可见;

但在 Unload FormXXX
Set FormXXX=Nothing
后,模块级Public、Private、Dim、函数级Static都不可见了?

若 FormXXX.Show
Set FormXXX=Nothing
则窗体FormXXX就无效了?


...全文
159 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyllxfly 2005-03-04
  • 打赏
  • 举报
回复
当然,Private、Dim、函数级Static声明的变量只能用在他的窗体界面上的按钮来访问他...

既然 Unload 没有把窗体从内存中去掉,难道仅仅是隐藏了吗?不是!他把窗体Show后的所有控件新设置及窗体本身都还原到设计初始状态,确实从内存中卸掉了很多东西!但也确实把用户模块级Private、Dim;函数级Static保存下来了!

若窗体正在显示当时,作 Set FormXXX=Nothing 也不会从内存中卸去,而是当前FormXXX无法引用该显示窗体实例而已。若再FormXXX.Show,则再增加一个窗体实例。原来的实例照样存在。

flyingZFX 2005-03-04
  • 打赏
  • 举报
回复
unload 以后,再引用其变量会自动重新load(隐式加载)
viena 2005-03-04
  • 打赏
  • 举报
回复
unload 以后,再引用其变量会自动重新load(隐式加载)

Set FormXXX = Nothing
只是使FormXXX不再引用这个对象,使这个对象的引用计数-1
GGL123 2005-03-04
  • 打赏
  • 举报
回复
卸载窗体后:
SET FormXXX=NOTHING
heavensonic 2005-03-04
  • 打赏
  • 举报
回复
你怎麽會訪問到Private、Dim、函数级Static申明的變量?那不是私有變量嗎?
unload 窗體沒有從内存中去掉
nothing 後内存中就沒有這個對象了,他的成員變量也就隨之消亡

7,785

社区成员

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

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