可以用load来加载. 首先在窗体上画一个picture控件,设置它的index属性为0,将它的Visible属性设为false.Private Sub Command1_Click() Dim i As LongFor i = 1 To Val(Text1.Text) Load Picture1(i) Picture1(i).Visible = True Picture1(i).Left = 0 Picture1(i).Top = i * 500 Next i End Sub
本例没有使用楼上几位加载控件数组的方法,唯一的优点就是不必事先放好一个pictureboxPrivate Sub Command1_Click() Dim ctlP As Control, i As LongFor i = 1 To Val(Text1.Text) '加入一个PictureBox Set ctlP = Controls.Add("VB.PictureBox", "ctlP" & i, Form1) '设置PictureBox的位置和尺寸 ctlP.Move i * 300, i * 300, 2500, 2000 '设置PictureBox的背景色 ctlP.BackColor = QBColor(i) '使PictureBox可见 ctlP.Visible = True Next i End Sub
类似: '类模块Class1代码: Option ExplicitPrivate WithEvents mvarCmBtn As CommandButton Public Property Set CmBtn(ByVal vData As CommandButton) Set mvarCmBtn = vData End Property Public Property Get CmBtn() As CommandButton Set CmBtn = mvarCmBtn End PropertyPrivate Sub mvarCmBtn_Click() MsgBox mvarCmBtn.Name End Sub'测试窗体代码: Option Explicit Dim a() As Class1Private Sub Command1_Click() Me.Controls.Remove Me.Controls("cmdobj3") '删除控件 End SubPrivate Sub Form_Load() ReDim a(5) Dim i As Integer For i = 0 To 5 Set a(i) = New Class1 Set a(i).CmBtn = Me.Controls.Add("VB.CommandButton", "cmdObj" & i) a(i).CmBtn.Visible = True a(i).CmBtn.Top = i * 500 Next i End Sub
首先在窗体上画一个picture控件,设置它的index属性为0,将它的Visible属性设为false.Private Sub Command1_Click()
Dim i As LongFor i = 1 To Val(Text1.Text)
Load Picture1(i)
Picture1(i).Visible = True
Picture1(i).Left = 0
Picture1(i).Top = i * 500
Next i
End Sub
Dim ctlP As Control, i As LongFor i = 1 To Val(Text1.Text)
'加入一个PictureBox
Set ctlP = Controls.Add("VB.PictureBox", "ctlP" & i, Form1)
'设置PictureBox的位置和尺寸
ctlP.Move i * 300, i * 300, 2500, 2000
'设置PictureBox的背景色
ctlP.BackColor = QBColor(i)
'使PictureBox可见
ctlP.Visible = True
Next i
End Sub
'类模块Class1代码:
Option ExplicitPrivate WithEvents mvarCmBtn As CommandButton
Public Property Set CmBtn(ByVal vData As CommandButton)
Set mvarCmBtn = vData
End Property
Public Property Get CmBtn() As CommandButton Set CmBtn = mvarCmBtn
End PropertyPrivate Sub mvarCmBtn_Click()
MsgBox mvarCmBtn.Name
End Sub'测试窗体代码:
Option Explicit
Dim a() As Class1Private Sub Command1_Click()
Me.Controls.Remove Me.Controls("cmdobj3") '删除控件
End SubPrivate Sub Form_Load()
ReDim a(5)
Dim i As Integer
For i = 0 To 5
Set a(i) = New Class1
Set a(i).CmBtn = Me.Controls.Add("VB.CommandButton", "cmdObj" & i)
a(i).CmBtn.Visible = True
a(i).CmBtn.Top = i * 500
Next i
End Sub