开始以为VB6中的窗体模块是实例而不是类,所以一直当做一个实例来使用
每次都是未 new 就直接 show 。。。糊里糊涂的反正也没出什么问题
最近了解到这窗体既可以是类,也可以按照实例来使用。。。
反而觉得不太自在了呵呵
我觉得还是将窗体视为类模块比较好理解,,然后我使用之前先创建 set form1 = new FormClass
从代码的安全性来讲,肯定是 new 后再使用更胜一筹吧???
有什么问题需要注意?
还是用回原来的糊涂方式反而更安全?
...全文
4756打赏收藏
关于 VB6.0 窗体类模块的使用问题
开始以为VB6中的窗体模块是实例而不是类,所以一直当做一个实例来使用 每次都是未 new 就直接 show 。。。糊里糊涂的反正也没出什么问题 最近了解到这窗体既可以是类,也可以按照实例来使用。。。 反而觉得不太自在了呵呵 我觉得还是将窗体视为类模块比较好理解,,然后我使用之前先创建 set form1 = new FormClass 从代码的安全性来讲,肯定是 new 后再使用更胜一筹吧??? 有什么问题需要注意? 还是用回原来的糊涂方式反而更安全?
刚才发现了这样的问题:
1)dll 的窗体里面我加了代码,想自己来控制窗体的卸载:
------------------------------------------------------------------
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 0 Then Me.Hide
If UnloadMode = 0 Then Cancel = 1
End Sub
------------------------------------------------------------------
2)DLL 类代码我这样写的:
Dim Face As oFormMain
------------------------------------------------------------------
Private Sub Class_Initialize()
Set Face = New oFormMain
End Sub
------------------------------------------------------------------
Private Sub Class_Terminate()
Unload Face
End Sub
然后发现窗体卸载不了:就是每创建一次 dll 就创建一个 face,但是 face 无法卸载
比如你在设计器创建一个窗口Form1,VB6在创建类的同时也隐式的声明了一个类的全局对象Form1;
相当于在一个模块中定义了如下语句:
Public Form1 As New Form1
所以你可以直接使用Form1类的对象Form1;
我觉得安全性没区别,主要是用法不一样:
new方法可以创建类的多个对象;
而直接使用类名对象则只能对应一个全局的对象;