现在想动态增加控件, 一共生成(M行N列个)控件,N都是可变值先在窗体上放一个Label1控件,设置它的Index属性为0
然后
Private Sub Command1_Click()
    Load Label1(1)
    Load Label1(2)
    ......
    Load Label1(M)
End Sub这样能生成一行或者一列
可是生成(M行N列),如何处理,并且Index可以方便的进行(行列)循环谢谢了

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim i As Integer, j As Integer
    Dim m As Integer, n As Integer
    Dim nTop As Integer
    Dim nLeft As Integer
    Dim cIndex As IntegernLeft = 0
    nTop = 0
    m = 8 '行
    n = 7 '列For i = 1 To m
      nTop = 0
      For j = 1 To n
          cIndex = i * n + j - n
          Load Label1(cIndex)
          Label1(cIndex).Move nLeft, nTop
          nTop = nTop + Label1(0).Height + 30
          Label1(cIndex).Visible = True
          Label1(cIndex).Caption = "控件" & cIndex
      Next j
      nLeft = nLeft + Label1(0).Width + 50
    Next i
    End Sub
      

  2.   

    '横排Private Sub Command1_Click()
    Dim i As Integer, j As Integer
    Dim m As Integer, n As Integer
    Dim nTop As Integer
    Dim nLeft As Integer
    Dim cIndex As IntegernLeft = 0
    nTop = 0
    m = 8 '列
    n = 7 '行For i = 1 To n
      nLeft = 0
      For j = 1 To m
          cIndex = i * m + j - m
          Load Label1(cIndex)
          Label1(cIndex).Move nLeft, nTop
          nLeft = nLeft + Label1(0).Width + 50
          Label1(cIndex).Visible = True
          Label1(cIndex).Caption = "控件" & cIndex
      Next j
      nTop = nTop + Label1(0).Height + 30
    Next iEnd Sub
      

  3.   

    tztz520(午夜逛街)//
    厉害
    我学会了
    谢谢^_^
      

  4.   

    Dim myImg() As Image
    Private Const M = 5 '行
    Private Const N = 4 '列
    Private Const ctlWidth = 1000
    Private Const ctlHeight = 375Private Sub Command1_Click()
        ReDim myImg(1 To M * N)
        Dim i%
        For i = 1 To M * N
            Set myImg(i) = Form1.Controls.Add("vb.Image", "img" & i & "")
            myImg(i).Width = ctlWidth: myImg(i).Height = ctlHeight        myImg(i).Left = 100 + ctlWidth * (i Mod N) ' lTmp
            myImg(i).Top = 40 + ctlHeight * (i Mod M)
            myImg(i).Visible = True
            myImg(i).BorderStyle = 1
        Next
    End Sub
      

  5.   

    Dim myImg() As Image
    Private Const M = 5 '行
    Private Const N = 4 '列
    Private Const ctlWidth = 1000 '宽
    Private Const ctlHeight = 375 '高Private Sub Command1_Click()
        ReDim myImg(1 To M * N)
        Dim i%
        For i = 1 To M * N
            Set myImg(i) = Form1.Controls.Add("vb.Image", "img" & i & "")
            myImg(i).Width = ctlWidth: myImg(i).Height = ctlHeight
            myImg(i).Left = 100 + ctlWidth * (i Mod N)
            myImg(i).Top = 40 + ctlHeight * (i Mod M)
            myImg(i).Visible = True
            myImg(i).BorderStyle = 1
        Next
    End Sub