
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
当然,我个人觉得更好的办法还是用控件数组,例如现在首先建立一个TextBox控件,并把Index属性改成0(注意,原来是空的,必须写上0)。
然后在程序中任意地方,采用例如Load
TextBox1(1)就可以创建一个新的TextBox对象,通过TextBox1(1)访问。
当然你可以用循环创建指定数量的文本框,在不用的时候记得用
Unload
TextBox1(1)给他注销掉。
http://zhidao.baidu.com/question/5248806.html你的这帖我也回了。
讲话要文明点,特别是问问题时,要不谁还敢回答?
给你两种方法
Option Explicit
Dim oCtrl As Object
'使得控件可以响应事件
Dim WithEvents MyBtn As CommandButton
Private Sub Form_Load()
Dim i As Integer
'先在窗体上加载个Label1(0)的标签控件
For i = 1 To 3
Load Me.Label1(i)
Label1(i).Top = Label1(i - 1).Top + 2 * Label1(0).Height
Label1(i).Caption = "Label1(" &i &")"
Label1(i).Visible = True
Next
'Debug.Print Me.Label1.Count
LoadControl
LoadControlWithEvents
End Sub
Private Sub LoadControl()
Set oCtrl = Controls.Add("VB.CommandButton", "Button1")
With oCtrl
.Caption = "不会响应事件的按钮"
.Width = 2000
.Left = 100
.Top = 200
.Visible = True '控件加载后默认为不可见,故此步骤至关重要!
End With
End Sub
Private Sub LoadControlWithEvents()
Set MyBtn = Controls.Add("VB.CommandButton", "Button2")
With MyBtn
.Caption = "我可以响应事件!"
.Width = 1800
.Left = 100
.Top = 700
.Visible = True
End With
End Sub
Private Sub MyBtn_Click()
MsgBox "我要移除动态加载的控件了!"
Me.Controls.Remove "Button1"
Me.Controls.Remove "Button2"
End Sub
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)