vb6中如何动态添加控件
您可以在vb6中动态添加控件,而无需使用控件数组:
object.add (progid,name,container)
参数说明:
object:必输。对象表达式,其值是“应用于”列表中的对象。
Progid:必需。标识控件的字符串。大多数控件的Progid可以通过查看对象浏览器来确定。控件的progid由控件的库和类组成。例如,commandbutton控件的progid是vb.commandbutton。当progid与对象浏览器中显示的progid不同时,visual basic将显示一条包含正确progid的错误信息。
名称:必需。标识集合成员的字符串。
容器:可选。指定控件容器的对象引用。如果未指定或为null,默认值是控件集合所属的容器。通过指定此参数,控件可以放置在任何现有的容器控件中(如框架控件)。用户或activex文档也可以用作容器。
示例:(在picture1顶部添加命令按钮)
private subform _ load()
form 1 . controls . add " VB . command button "," cmdok ",picture1
with 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 . add " prj weeks . weeks CTL "," xydsfasfjewfe "
set ext CTL = form 1 . controls . add(" prj weeks . weeks CTL "," CTL 1 ")
ext CTL . visible = true '控件默认情况下是不可见的。
结束sub
但是,为了在不引用控件的情况下编写这样的事件,必须使用withevents关键字将对象变量声明为vbcontrolextender对象(如上所示),并将对象变量设置为add方法返回的引用。然后,使用vbcontrolextender对象的objectevent事件对此控件的事件进行编程。下面是一个简单的示例:
option explicit
dimwithevents objext as vbcontrolextender '声明扩展程序变量。
private sub load control()
licenses . add " project 1 . control 1 "," xydsfasfjewfe "
set obj ext = controls . add(" project 1 . control 1 "," myctl ")
obj ext . visible = true
end sub
private ext obj _ object event(info as event info)
'使用select case编写控件的事件。
select caseinfo . name
case " Click "
' Click事件在此处处理。
'现在显示其他案例
case else '未知事件
'在这里,处理未知事件。
结束选择
结束sub
0条评论