多窗体的释放问题

ayiiq180 2003-06-06 10:57:49
假设有两个窗体,frm1和frm2,在frm1中单击一个按钮弹出frm2(frm1不关闭,也不是mdi,只是弹出),然后单击关闭关掉frm2后,frm1中声明的frm2的实例如何才能置为nothing?我试了,关掉frm2后,frm1中声明的frm2变量仍然有值,但却已经是不能访问的了,所以需要将其置为nothing.
...全文
66 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayiiq180 2003-06-10
  • 打赏
  • 举报
回复
me.dispose只能释放窗体资源,但是声明的窗体变量却不释放
ayiiq180 2003-06-09
  • 打赏
  • 举报
回复
还是不行
自己顶顶
LongBow007 2003-06-09
  • 打赏
  • 举报
回复
试试me.dispose
saiyang0312 2003-06-09
  • 打赏
  • 举报
回复
力不从心了
帮你顶
saiyang0312 2003-06-06
  • 打赏
  • 举报
回复

protected
Serializable
ClassInterface(ClassInterfaceType.AutoDual)
override function Finalize();
备注
Finalize 是受保护的,因此只能通过此类或派生类访问它。

对象变为不可访问后将自动调用此方法,除非已通过 SuppressFinalize 调用使对象免除了终结。在应用程序域的关闭过程中,对没有免除终结的对象将自动调用 Finalize,即使那些对象仍是可访问的。对于给定的实例仅自动调用 Finalize 一次,除非使用 ReRegisterForFinalize 这类机制重新注册该对象并且后面没有调用 GC.SuppressFinalize。

派生类型中的每个 Finalize 实现都必须调用其基类型的 Finalize 实现。这是唯一一种允许应用程序代码调用 Finalize 的情况。

Finalize 操作具有下列限制:

垃圾回收过程中执行终结程序的准确时间是不确定的。不保证资源在任何特定的时间都能释放,除非调用 Close 方法或 Dispose 方法。
即使一个对象引用另一个对象,也不能保证两个对象的终结程序以任何特定的顺序运行。即,如果对象 A 具有对对象 B 的引用,并且两者都有终结程序,则当对象 A 的终结程序启动时,对象 B 可能已经终结了。
运行终结程序的线程是未指定的。
saiyang0312 2003-06-06
  • 打赏
  • 举报
回复
每一个类都有一个终止事件finalize:
Protected Overrides Sub Finalize()
MyBase.Finalize()
Me.Close()
'me.dispost


End Sub
ayiiq180 2003-06-06
  • 打赏
  • 举报
回复
问题在于不知道在哪里写这句代码
关闭frm2的时候在frm1不触发任何事件
saiyang0312 2003-06-06
  • 打赏
  • 举报
回复
设置事件:
可以添加关闭按钮,也可以在触发关闭事件填写代码:
frm2.close()

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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