Option Explicit
Private WithEvents lblTest As Label
Private WithEvents txtTest As TextBox
Private Sub Form_Load()
    Set lblTest = Controls.Add("vb.label", "lblTest", Me)
    lblTest.Caption = "TEST ONLY"
    lblTest.Top = 1000
    lblTest.Left = 1000
    lblTest.Visible = True
    Set txtTest = Controls.Add("vb.textbox", "txtTest", Me)
    txtTest.Text = "TEST ONLY"
    txtTest.Top = 1400
    txtTest.Left = 1000
    txtTest.Visible = True
End Sub
以上的代码可以在运行时创建一个lable和textbox
我想创建N个这样的控件,该怎么写呢?

解决方案 »

  1.   

    withevent无法声明数组,而vb里动态生成控件数组的简单方法需要一个控件数组元素作为基准载入多个新控件,因此按照你的思路为新控件添加事件处理会很麻烦。在窗体里放一个不可见的控件,取名为 TextBox(0),索引可以不为零,但是可能会给循环处理带来一些麻烦,然后在需要生成控件的地方编写如下代码:
       Dim i As Integer
          For i = 1 To 5
              Load Textbox1(i) ' 添加5个按钮。
              Textbox1(i).Top = Textbox1(i - 1).Top + 350 
              Textbox1(i).Left = Textbox1(i - 1).Left + 800
              Textbox1(i).Visible = True 
              Textbox1(i).Text = i
          Next i
      

  2.   

    楼上正解,先放一个Index为0的控件,设其Visible=false,