VB中的窗体为何无法用 set form1=nothing的方法从内存释放呢?Private Sub Command1_Click()
Unload Form1
Set Form1 = Nothing
If Form1 Is Nothing Then
MsgBox "已经释放"
Else
MsgBox "没有释放" '实际上,运行多少次也是没有释放
End If
End Sub好象可以unload,然后窗体不见了,但是总在内存中,为何set form1=nothing 总是不起作用呢?
Unload Form1
Set Form1 = Nothing
If Form1 Is Nothing Then
MsgBox "已经释放"
Else
MsgBox "没有释放" '实际上,运行多少次也是没有释放
End If
End Sub好象可以unload,然后窗体不见了,但是总在内存中,为何set form1=nothing 总是不起作用呢?
解决方案 »
- vb6.0+sql2000关于数据的查询???
- 急!!!高手指教:VB6代码如何实现竖起来预览图片?
- 帮我看看这个语句哪里有错啊?
- WebBrowser中的打印问题
- 是否可将VB程序打包为不需.dll的.exe?
- 求教在windows2000下获取系统路径的方法!
- vb拖放文件
- 怎么在VB数据报表中添加vsFlex8.ocx
- 老式康柏compaq prosignia 300机器的 万能驱动盘 哪能下载??
- 能否捕捉到其它程序上的文本输入框(如TextBox)的句柄,并得到它的文本?
- VB中TextBox控件对Chr(10)是不是不起作用
- 创建一个窗体,比如名称为form1,我何时应该用:form1.show,何时要用:dim myfrm as new form1 然后再:myfrm.show 呢?
'如果直接用 from1.show 或 from1.load 会是全局且退不出的, 如果是主窗口或者等到end才unload的可以这样用。
'而且,show完再show,load事件里的相同代码可能会有不同的怪效果(做数据库时遇到过)
'要指定一个新的窗口变量,不要直接用类名from1
'dim frm as form1 ’定义为模块级变量Private Sub Command1_Click()
dim frm as form1 '定义为过程变量 set frm = new form1 '激活load事件, 一般用这种方法, 因为有些时候判断要不要new一个
'frm.show 1 'show it
Unload frm
'这里还可以访问frm的非窗口的公共变量
'比如:x = frm.publicVar '内存还没有回收
Set frm = Nothing '内存被回收了,不要再访问了
If frm Is Nothing Then
MsgBox "已经释放,退出此sub后,内存中已经没有了"
Else
MsgBox "没有释放,不会吧"
End If
End Sub