当前位置:编程学习 > VB >>

怎么循环生成多个按钮

要求生成的按钮就像电影院的座位一样排列 谁能帮帮我 谢谢了 --------------------编程问答-------------------- 没人帮我吗 --------------------编程问答-------------------- 谁来帮帮我啊  郁闷啊 --------------------编程问答-------------------- 给个例子你看看:
    先在窗体上放置一个按钮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创建。 --------------------编程问答-------------------- 00000
00000
00000
我的意思就是像上面一样排列  怎么用代码生成按钮像上面的排列 有谁知道吗 --------------------编程问答-------------------- '先放一个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 Explicit

Private Sub Command1_Click(Index As Integer)
    MsgBox "Command1(" & Index & ")"
End Sub

Private 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
补充:VB ,  控件
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,