VB.NET创建对象和销毁对象的问题
来源:百度文库 编辑:神马文学网 时间:2024/04/27 23:45:41
- VB.NET code
Dim formt As formCurrentUserState = New formCurrentUserState() 'formCurrentUserState一个俺自己写好的窗体
formt.MdiParent = Me
formt.Show()
俺自己定义了一个窗体, 并且在FRMMAIN中(mdiparent窗口), 单击按钮就调用上面的代码。
能运行通过, 不过, 俺想改进一下
1通过另外一个按钮, 来销毁这个formt。不知道要怎样做呢
2.通过一个全局的标志位, 记录下当前是否存在了这个FORMT。
然后:
在那个按钮中
if flag = false then
创建之
else
销毁之
end if
这样要怎样写的代码呢?
对象在释放后系统自动回收内存的。
可以使用:
formt.Dispose()
GC.Collect()
不用全局标志就可以实现,见下:
但有两点要注意:
一、你的 formt 对象必须为全局变量(即:必须在模块中先用 Dim formt As formCurrentUserState 先声明formt 变量),然后在自己窗体的FormLoad事件中赋值: formt=me 。只有这样你的销毁按钮才会有效。
二、销毁时用这个:
If formt IsNot Nothing Then
formt.Dispose()
End If
public function FindForm(sFormName) as form
dim i as integer
dim bFind as boolean
bfind=false
for i=0 to frmmain.mdichildren.length-1
if frmmain.mdichildren(i).name="sFormName" then
bfind=true
exit for
end if
next
if bfind then
return frmmain.mdichildren(i)
else
return nothing
end if
end function
Dim formt As formCurrentUserState = New formCurrentUserState() 'formCurrentUserState一个俺自己写好的窗体
formt.Name="yourname";//起一个名字,用来标识
formt.MdiParent = Me
formt.Show()
要显示的时候,首先检查窗体是否已经存在:
Application.OpenForms("yourname") <>nothing
然后才生成并显示窗体
销毁也是一样,首先检查是否存在,如果存在,调用Close方法。
全局变量里申明
Dim formt As formCurrentUserState
想创建的话在事件里写
If formt Is Nothing Or formt .IsDisposed = True Then
formt = New formCurrentUserState()
End If
想销毁的话在事件里写
formt.Dispose()
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For Each objForm As Form In Me.MdiChildren
If objForm.GetType.Name.ToLower = "youformname" Then
objForm.Close()
objForm.Dispose()
End If
Next
End Sub
VB.NET创建对象和销毁对象的问题
VB.NET中有用的通用对象列表
VB.NET文件对象读写文本文件
VB编程基础教程17–创建对象 | 异次元软件世界
VB编程基础教程17–创建对象 | 异次元软件世界
excel问题::对象sheets的方法global失败 VB / 基础类 - CSDN社...
VB.Net自动创建数据库的实例
automation服务器不能创建对象
使用 JDBC 创建数据库对象
使用 JDBC 创建数据库对象
如何创建CSS的对象?获取合适的粒度!
关于String对象在创建之后不能改动的理解
SQL对象名无效的问题
ASP.NET之--PAGE对象
对话框类对象的自销毁与外销毁 --个人站长站教程
VB.NET创建快捷方式的两种方法
VB.NET创建快捷方式的两种方法
VB.net 中文处理问题 (Unicode 和 Ascii的编码问题)
FSO对象模型在VB中的应用
JavaScript的Base对象与Body对象
深入探讨VB.NET创建临时文件操作方法
VB编程基础教程16–对象之间的关系 | 异次元软件世界
VB编程基础教程16–对象之间的关系 | 异次元软件世界
ASP的对象结构