正在阅读:vb6中如何动态添加控件vb6中如何动态添加控件

2005-07-07 10:44 出处: 作者:devil_xp 责任编辑:moningfeng
vb6中可以动态添加控件,不用控件数组:

object.add (progid, name, container)


参数说明
 object:必需。一个对象表达式,其值是“应用于”列表中的一个对象。

 progid:必需。一个标识控件的字符串。大多数控件的 progid 都可通过查看对象浏览器来决定。控件的 progid 是由控件的库和类组成的。例如,commandbutton 控件的 progid 是 vb.commandbutton。在progid 与对象浏览器中所显示的不一样的情况下,visual basic 将显示一个包括正确 progid 的错误信息。

 name:必要。一个字符串,用来标识集合的成员。

 container:可选。一个对象引用,它指定控件的容器。如果没有指定或为null,缺省值为 controls 集合所属的容器。通过指定该参数,可以把一个控件放置在任何现存的容器控件(如 frame 控件)中。用户控件或 activex 文档也可以作为一个容器。

 举例:(在picture1上面添加一个commandbutton)

private sub form_load()
form1.controls.add "vb.commandbutton", "cmdok", picture1
with form1!cmdok
.visible = true
.width = 500
.caption = "确认(&y)"
end with
end sub


 重点:当您添加一个未引用的需要许可证的控件到一个现存的(已部署好的)应用程序时,在使用 add 方法之前您必须也添加这个控件的许可证关键字。


在运行时添加未引用的控件
 您也可以利用 add 方法来动态添加一个在工程中没有被引用的控件。(“未引用的”控件是不出现在 toolbox 中的控件)。为此,您必须也把控件的license 关键字添加到 licenses 集合中。下面的示例中在添加控件本身之前添加了控件的许可证关键字:

option explicit
private withevents extctl as vbcontrolextender

private sub form_load()
licenses.add "prjweeks.weeksctl", "xydsfasfjewfe"
set extctl = form1.controls.add("prjweeks.weeksctl", "ctl1")
extctl.visible = true ’ the control is invisible by default.
end sub

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品