Private WithEvents mvarCmBtn As CommandButton
Dim BtnIndex As Integer
Public Property Set CmBtn(ByVal vData As CommandButton)
Set mvarCmBtn = vData
End Property
Public Property Get CmBtn() As CommandButton
Set CmBtn = mvarCmBtn
End Property
Private Sub mvarCmBtn_Click()
MsgBox BtnIndex '返回索引值
End Sub
Public Property Let LetBtnIndex(p_BtnIndex)
BtnIndex = p_BtnIndex
End Property
窗体代码:
Option Explicit
Dim a() As Class1
Private Sub Command1_Click()
Me.Controls.Remove Me.Controls("cmdobj3") '删除控件
End Sub
Private Sub Command2_Click()
MsgBox a(0, 0).CmBtn.Value
End Sub
Private Sub Form_Load()
'Check1.Value = True
ReDim a(5, 3)
Dim I As Integer
Dim J As Integer
Dim k As Integer
k = 1
For I = 0 To 5
For J = 0 To 3
Set a(I, J) = New Class1
Set a(I, J).CmBtn = Me.Controls.Add("VB.CommandButton", "cmdObj" & k)
a(I, J).LetBtnIndex = k
a(I, J).CmBtn.Visible = True
a(I, J).CmBtn.Top = J * 500
a(I, J).CmBtn.Left = I * 2000
k = k + 1
Next J
Next I
End Sub