各位哥哥姐姐高手大侠们,帮帮忙啊,用ADD添加一个控件的时候代码是可以的,为什么需要多个控件的时候就不行呢?帮我看看~~~谢谢大家了.. Option Explicit 
Private WithEvents Ctlextender1 As CheckBox Private Sub Form_Load() 
Dim i As Integer 
Dim j As Integer 
i = 0 
j=8 
For i = 0 To j 
Set Ctlextender1 = hyfwform.Controls.Add("VB.checkbox", "F" & Trim(i), Frame4) 
   Ctlextender1.Visible = True 
   If i > 3 Then 
   Ctlextender1.Top = 240 + 480 * (i Mod 4) 
   Ctlextender1.Left = 4800 
   Else 
   Ctlextender1.Top = 240 + 480 * i 
   Ctlextender1.Left = 2160 
   End If 
   Ctlextender1.Caption = "测试" & Trim(i) 
Next End Sub Private Sub Ctlextender1_Click() Text1.Text = "123456789" End Sub 

解决方案 »

  1.   

    谢谢!大哥!我的问题不是控件能不能出来,控件添加是可以的,只是下面的
    Private   Sub   Ctlextender1_Click()   Text1.Text   =   "123456789"   End   Sub 
    这段代码为什么不能被执行,也就是说我想写这8个控件的点击代码!!
      

  2.   

    晕。程序运行结束后 Ctlextender1 = "测试8",只有点击“测试8”才会触发事件。你还把"测试8"隐藏在"测试4"后面,点击其它CheckBox当然没反应了。用控件数组吧,先放一个Ctlextender放在Frame上,Index设为0.(平时不用的话可以设置为不可见),然后:Option ExplicitPrivate Sub Form_Load()
    Dim i     As Integer
    Dim j     As Integer
    i = 0
    j = 7
    For i = 0 To j
        Load Ctlextender(i + 1)
        Ctlextender(i + 1).Visible = True
        If i > 3 Then
            Ctlextender(i + 1).Top = 240 + 480 * (i Mod 4)
            Ctlextender(i + 1).Left = 4800
        Else
            Ctlextender(i + 1).Top = 240 + 480 * i
            Ctlextender(i + 1).Left = 2160
        End If
        Ctlextender(i + 1).Caption = "测试" & Trim(i)
    NextEnd SubPrivate Sub Ctlextender_Click(Index As Integer)
        Text1.Text = "123456789"
    End Sub
      

  3.   

    首先,0到8是9个控件,不是8个!
    第9个控件的位置与第5个位置重叠了,你把j=8改成j=7,然后点最后一个checkbox控件,就会执行它的click事件