VB 生成一个控件数组
PrivateWithEventsaAsCommandButtonPrivateSubForm_Load()Seta=Form1.Controls.Add("vb.com...
Private WithEvents a As CommandButton
Private Sub Form_Load()
Set a = Form1.Controls.Add("vb.commandbutton", "b")
a.Visible = True
End Sub
我这样生成的一个动态按钮,请问 如果用循环要生成多个按钮组的话 怎么做 展开
Private Sub Form_Load()
Set a = Form1.Controls.Add("vb.commandbutton", "b")
a.Visible = True
End Sub
我这样生成的一个动态按钮,请问 如果用循环要生成多个按钮组的话 怎么做 展开
展开全部
Public Function 创建控件数组(控件名 As Object, 源控件Index As Integer, 创建数量 As Long, 间距 As Integer, Optional 偏移 As Integer = 1) As Boolean
Dim I As Integer, ID As Integer
On Error GoTo 创建失败
ID = 控件名.UBound
For I = 1 To 创建数量
Load 控件名(ID + I)
With 控件名(ID + I)
Select Case 偏移
Case 1
.Top = 控件名(源控件Index).Top
.Left = 控件名(源控件Index).Left + (控件名(ID + I - 1).Width + 间距) * I
Case 2
.Top = 控件名(源控件Index).Top + (控件名(ID + I - 1).Height + 间距) * I
.Left = 控件名(源控件Index).Left
Case Else
MsgBox "偏向参数错误,纵向偏移=2,横向偏移=1", vbCritical, "创建控件数组"
Unload 控件名(ID + I)
Exit Function
End Select
.Visible = True
End With
Next
创建控件数组 = True
Exit Function
创建失败:
创建控件数组 = False
MsgBox "创建控件数组失败!" & vbCrLf & vbCrLf & "控件未设置 'Index' 属性,或" & vbCrLf & Err.Description & "。", vbCritical, "创建控件数组"
End Function
'首先添加一个 Command1 控件,并设置 Index 属性为 0。
Private Sub Form_Load()
创建控件数组 Command1, 0, 3, 120, 2
End Sub
Dim I As Integer, ID As Integer
On Error GoTo 创建失败
ID = 控件名.UBound
For I = 1 To 创建数量
Load 控件名(ID + I)
With 控件名(ID + I)
Select Case 偏移
Case 1
.Top = 控件名(源控件Index).Top
.Left = 控件名(源控件Index).Left + (控件名(ID + I - 1).Width + 间距) * I
Case 2
.Top = 控件名(源控件Index).Top + (控件名(ID + I - 1).Height + 间距) * I
.Left = 控件名(源控件Index).Left
Case Else
MsgBox "偏向参数错误,纵向偏移=2,横向偏移=1", vbCritical, "创建控件数组"
Unload 控件名(ID + I)
Exit Function
End Select
.Visible = True
End With
Next
创建控件数组 = True
Exit Function
创建失败:
创建控件数组 = False
MsgBox "创建控件数组失败!" & vbCrLf & vbCrLf & "控件未设置 'Index' 属性,或" & vbCrLf & Err.Description & "。", vbCritical, "创建控件数组"
End Function
'首先添加一个 Command1 控件,并设置 Index 属性为 0。
Private Sub Form_Load()
创建控件数组 Command1, 0, 3, 120, 2
End Sub
展开全部
至少要有一个按钮并INDEX属性不能为空
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Form_Load()
Dim a(3) As CommandButton
For i% = 0 To 3
Set a(i%) = Controls.Add("VB.COMMANDBUTTON", "a" & Trim(Str(i)))
a(i%).Visible = True
a(i%).Move 120, 120 + i% * 720
Next i%
End Sub
Dim a(3) As CommandButton
For i% = 0 To 3
Set a(i%) = Controls.Add("VB.COMMANDBUTTON", "a" & Trim(Str(i)))
a(i%).Visible = True
a(i%).Move 120, 120 + i% * 720
Next i%
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询