vb实现动态添加控件,第1张

vb实现动态添加控件,第2张

VB6有一个新功能,可以不使用控件数组动态添加控件:

对象。添加(ProgID,名称,容器)

参数描述

需要对象。对象表达式,其值是“应用于”列表中的对象。

需要ProgID。标识控件的字符串。大多数控件的ProgID可以通过查看对象浏览器来确定。控件的ProgID由控件的库和类组成。

例如,CommandButton控件的ProgID是VB。ProgID与对象浏览器中显示的不同时的CommandButton,Visual Basic

将显示带有正确ProgId的错误消息。

名字是必须的。标识集合成员的字符串。

容器是可选的。指定控件容器的对象引用。如果未指定或为NULL,默认值是控件集合所属的容器。通过指定此参数,控件可以放置在任何现有的容器控件中(如框架控件)。用户或ActiveX文档也可以用作容器。

示例://在picture1上添加一个commandbutton

私有子Form_Load()
Form1。控件。添加“VB。CommandButton "," cmdOk ",picture 1
与Form1!Cmdok
。visible = true
。宽度= 500
。caption = " confirm(& Y)"

End Sub结束

重要提示:当向现有(已部署)应用程序添加需要许可证的未引用控件时,在使用Add方法之前,还必须添加该控件的license关键字。

在运行时添加未引用的控件:

还可以使用Add方法动态添加项目中未引用的控件。(“未引用”控件是不出现在工具箱中的控件)。为此,还必须将控件的License关键字添加到Licenses集合中。下面的示例在添加控件本身之前添加控件的license关键字:

option Explicit
Private WithEvents extCtl As VBControlExtender
Private Sub Form _ Load()
Licenses。添加“prjWeeks。WeeksCtl "," xydsfasfjewfe "
Set ext CTL = form 1。Controls.Add("prjWeeks。WeeksCtl "," ctl1")
extCtl。Visible = True默认情况下,控件不可见。
结束Sub

但是,为了在不引用控件的情况下编写这样的事件,必须使用WithEvents关键字将对象变量声明为VBControlExtender对象(如上所示),并将对象变量设置为Add方法返回的引用。然后,使用VBControlExtender对象的ObjectEvent事件对此控件的事件进行编程。这里有一个简单的例子。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » vb实现动态添加控件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情