vb实现动态添加控件
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事件对此控件的事件进行编程。这里有一个简单的例子。
位律师回复
0条评论