'先放一个Command1,将索引设0 Private Sub Form_Load() For I = 1 To 19 Load Command1(I) Command1(I).Visible = True Command1(I).Left = Command1(I - 1).Left + Command1(I).Width + 20 Command1(I).Top = Command1(I - 1).Top If I Mod 5 = 0 Then Command1(I).Left = Command1(I - 5).Left Command1(I).Top = Command1(I - 1).Top + Command1(I - 1).Height + 20 End If Next End Sub
'先新建一个 CommandButton 控件 默认名为 Command1 '复制它然后粘贴,选择是。然后把粘贴进来的新控件删掉不要了。 Option ExplicitPrivate Sub Command1_Click(Index As Integer) MsgBox "Command1(" & Index & ")" End SubPrivate Sub Form_Load() Dim i As Integer For i = 1 To 19 Load Command1(i) Command1(i).Caption = "Command" & i + 1 Command1(i).Left = Command1(0).Left + Command1(0).Width * (i Mod 4) Command1(i).Top = Command1(0).Top + Command1(0).Height * (i \ 4) Command1(i).Visible = True Next i End Sub
生成一个的代码如下: Private Sub Form_Load() Dim btn As CommandButton Set btn = Form1.Controls.Add("VB.CommandButton", "Button") btn.Visible = True End Sub 你要生成多个,简单,定义一个按钮数组即可,只需要对每个按钮的位置做出赋值即可。具体代码如下: Private Sub Form_Load() Dim btn(10) As CommandButton Dim I As Integer For I = 0 To 9 Set btn(I) = Form1.Controls.Add("VB.CommandButton", "Button" & CStr(I)) btn(I).Width = 1000 btn(I).Height = 500 btn(I).Caption = "Button" & CStr(I) btn(I).Left = 5 + I * btn(I).Width btn(I).Visible = True Next I End Sub
先在窗体上放置一个按钮cmd ,index 为0
Load cmd(cmd.UBound + 1)
cmd(cmd.UBound).Caption = cmd.UBound
cmd(cmd.UBound).Left = cmd(cmd.UBound - 1).Left + cmd(cmd.UBound - 1).Width + 100 cmd(cmd.UBound).Visible = True
cmd(cmd.UBound).ZOrder 0
VB可以使用三种办法动态加载或创建储如按钮的控件。
一是使用控件数组,代码楼上已给出。
二是使用窗体的Controls.Add方法,CSDN里有很多现成代码。
三是使用CreateWindow或CreateWindowEx之类的API创建。
Private Sub Form_Load()
For I = 1 To 19
Load Command1(I)
Command1(I).Visible = True
Command1(I).Left = Command1(I - 1).Left + Command1(I).Width + 20
Command1(I).Top = Command1(I - 1).Top
If I Mod 5 = 0 Then
Command1(I).Left = Command1(I - 5).Left
Command1(I).Top = Command1(I - 1).Top + Command1(I - 1).Height + 20
End If
Next
End Sub
'先新建一个 CommandButton 控件 默认名为 Command1
'复制它然后粘贴,选择是。然后把粘贴进来的新控件删掉不要了。
Option ExplicitPrivate Sub Command1_Click(Index As Integer)
MsgBox "Command1(" & Index & ")"
End SubPrivate Sub Form_Load()
Dim i As Integer
For i = 1 To 19
Load Command1(i)
Command1(i).Caption = "Command" & i + 1
Command1(i).Left = Command1(0).Left + Command1(0).Width * (i Mod 4)
Command1(i).Top = Command1(0).Top + Command1(0).Height * (i \ 4)
Command1(i).Visible = True
Next i
End Sub
Private Sub Form_Load()
Dim btn As CommandButton
Set btn = Form1.Controls.Add("VB.CommandButton", "Button")
btn.Visible = True
End Sub
你要生成多个,简单,定义一个按钮数组即可,只需要对每个按钮的位置做出赋值即可。具体代码如下:
Private Sub Form_Load()
Dim btn(10) As CommandButton
Dim I As Integer
For I = 0 To 9
Set btn(I) = Form1.Controls.Add("VB.CommandButton", "Button" & CStr(I))
btn(I).Width = 1000
btn(I).Height = 500
btn(I).Caption = "Button" & CStr(I)
btn(I).Left = 5 + I * btn(I).Width
btn(I).Visible = True
Next I
End Sub