vb窗体unload后,为什么变量值还存在?
2个回答
展开全部
Unload 语句
从内存中卸载窗体或控件。
语法
Unload object
object 所在处是要卸载的 Form 对象或控件数组元素的名称。
说明
当所占内存另有它用,或需要重新设置窗体、控件的属性为初始值时,就有必要卸载窗体或控件。
在卸载窗体前,会发生 Query_Unload 事件过程,然后是 Form_Unload 事件过程。在其中任一过程中设置 cancel 参数为 True 可防止窗体被卸载。若为 MDIForm 对象,先发生 MDIForm 对象的 Query_Unload 事件过程,接着是各 MDI 子窗体 的 Query_Unload 事件过程和 Form_Unload 事件过程,最后是 MDIForm 对象的 Form_Unload 事件过程。
当窗体卸载之后,所有在运行时 放到该窗体上的控件都不再是可访问的。在设计时放到该窗体上的控件将保持不变;但是,当窗体重新加载时,在运行时对这些控件及其属性的任何更改将丢失。所有对于窗体属性的更改也将丢失。对窗体上任何控件的访问会导致窗体重新加载。
注意 在卸载窗体时,只有显示的部件被卸载。和该窗体模块相关联的代码还保持在内存中。
=================================
这是微软官方对unload命令的解释,注意最后一句话,代码还是在内存中存在的,所以无法卸载,如果非要释放这些变量,只能自己手动编写代码去清空它们 或者使用如下的方法去彻底卸载一个窗口
Unload Form1
Set Form1 = Nothing
第二步设置form1为nothing的时候会彻底从内存中移除form1对象,这样它关联的内存变量就再也不存在了
从内存中卸载窗体或控件。
语法
Unload object
object 所在处是要卸载的 Form 对象或控件数组元素的名称。
说明
当所占内存另有它用,或需要重新设置窗体、控件的属性为初始值时,就有必要卸载窗体或控件。
在卸载窗体前,会发生 Query_Unload 事件过程,然后是 Form_Unload 事件过程。在其中任一过程中设置 cancel 参数为 True 可防止窗体被卸载。若为 MDIForm 对象,先发生 MDIForm 对象的 Query_Unload 事件过程,接着是各 MDI 子窗体 的 Query_Unload 事件过程和 Form_Unload 事件过程,最后是 MDIForm 对象的 Form_Unload 事件过程。
当窗体卸载之后,所有在运行时 放到该窗体上的控件都不再是可访问的。在设计时放到该窗体上的控件将保持不变;但是,当窗体重新加载时,在运行时对这些控件及其属性的任何更改将丢失。所有对于窗体属性的更改也将丢失。对窗体上任何控件的访问会导致窗体重新加载。
注意 在卸载窗体时,只有显示的部件被卸载。和该窗体模块相关联的代码还保持在内存中。
=================================
这是微软官方对unload命令的解释,注意最后一句话,代码还是在内存中存在的,所以无法卸载,如果非要释放这些变量,只能自己手动编写代码去清空它们 或者使用如下的方法去彻底卸载一个窗口
Unload Form1
Set Form1 = Nothing
第二步设置form1为nothing的时候会彻底从内存中移除form1对象,这样它关联的内存变量就再也不存在了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询