加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Forms对象一个隐含的方法

发布时间:2020-12-16 23:07:56 所属栏目:大数据 来源:网络整理
导读:今天在回答一个贴子,要求是根据窗口名称字符串显示窗口,我新建了一个VB工程,添加了两个Form,Form的名称分别为Form1和Form2,然后写了以下代码: Private Sub Form_Load() ShowForm1 "form2"End SubPrivate Sub ShowForm(ByVal strFormName As String) Di

今天在回答一个贴子,要求是根据窗口名称字符串显示窗口,我新建了一个VB工程,添加了两个Form,Form的名称分别为Form1和Form2,然后写了以下代码:

奇怪的是,Form2居然没有显示除来,跟踪了一下代码,发现Form2.Count的值为1,原来,如果窗口只有被Load过,才会被加入到Forms里,如果窗口被Unload了,则会从Forms里移出。而现在要求是根据窗口名称来加载窗口,那么,如何根据窗口名称生成窗口对象呢?Forms集合对象提供了Count属性,它是否提供了Add方法加入窗口对象?想到这儿,我立马写了以下代码进行验证:

哈哈,Form2果然被成功加载了,这说明Forms集合对象确实提供了一个隐含的Add方法,该方法可以被多次执行,每执行一次,就会实例一次Form2窗口类,比如以下代码将会显示两个Form2窗口类的实例:

为了防止窗口类Form2被重复实例化,因此将代码修改如下:

这样就完整地实现了根据窗口名称来生成窗口类的对象了。有了Add方法,我又试了一下Remove方法,结果失败了,可能该方法只能由VB内部自己调用吧。 这个隐含的Add方法非常有意思,当和菜单结合,我们就可以像Set objControl=Me.Controls.Add("控件名称")动态加载控件一样来动态加载窗口了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读