Private Sub Form_Load()
  Dim rrow As Integer
    Dim chec()
    
  For rrow = 1 To 5
    ReDim chec(rrow + 1)
    chec(rrow) = "checkb" & (rrow - 1)
    Me.Controls.Add "VB.checkbox", chec(rrow)
    With Me.Controls(chec(rrow))
      .Visible = True
      .Left = Me.Left + 100 + rrow * 200
      .Top = Me.Top + 50 + rrow * 200
      .UseMaskColor = True
      .Width = 200
      .Height = 200
      .Caption = "ssss"
    End With
    NextEnd Sub

解决方案 »

  1.   

    正确代码如下:dim mycheck as checkbox
    dim mystr as string
    dim i as integerfor i=0 to rrow-1
       mystr="mycheck" & i
       set mycheck=controls.add("vb.checkbox",mystr,me)
       with mycheck
          .visible=true
          .width=255
          .top=i*350
       end with
    next i此段代码生成rrow个checkbox,在窗体上成1列排列,注意如果rrow太大的话,后面的checkbox可能跑到窗体外面,看不到了。vb6.0,winme下编译通过
      

  2.   

    http://www.csdn.net/expert/topic/486/486446.shtm
      

  3.   

    在 ReDim chec(rrow + 1)前加上以下这一句试试。
    rrow=mshReportList.Rows
    或者在循环内重新声明数组。最好使用参数preserve
      

  4.   

    呵呵..谢谢楼上各位..我的问题其实在于mshReportList.Left 和mshReportList.top上,
    由于各位启发,问题解决,谢谢楼上的各位了..