新建工程,在窗体上添加2个控件 command1,command2,将command1的index属性设为0Option ExplicitPrivate Sub Command1_Click(Index As Integer)  ’事件里提供了索引号
MsgBox Command1(Index).Name & "(" & Index & ")"
End Sub
Private Sub Command1_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)End SubPrivate Sub command2_Click() ‘生成新控件,但生成的新控件跟原来的控件的位置完全一样
Dim Btn  As CommandButton
Load Command1(Command1.UBound + 1)  ’在入新控件,一定要加这一句
Set Btn = Command1(Command1.UBound)
Btn.Visible = True
Btn.Move 100, 400  ‘移动新控件,以便能看出 确实生成了新控件
End Sub

解决方案 »

  1.   

    不知是否我没明白你的意思,index参数本身不就是告诉你点的是哪个控键嘛
    如你每个控件的事件响应程序完全不一样,你可以这样写
    sub label_click(index)
      select case index
        case 0
          call labelclick0()
        case 1
          call labelclick1()
        ...
      end select
    end subsub labelclick1()
      ...
    end sub...
      

  2.   

    关键是你自己要明白哪个控件对应的index是多少。
    按照预定的对应关系创建控件。比如做一个计算器要做0-9十个按钮
    你可以在窗体上建立一个控件数组,共十个,caption 属性分别为0-9
    同时修改index属性相应也为0-9,这样caption和index就取得了一致
    至于加号等号一类按钮只要你自己订好对应关系就行了,比如“+”为11,“=”为16
    或者干脆不用数组,因为反正处理程序不一样何必用数组呢,用控件数组只是为了处理功能相近一类控件时用的
      

  3.   

    关键是你自己要明白哪个控件对应的index是多少。
    按照预定的对应关系创建控件。比如做一个计算器要做0-9十个按钮
    你可以在窗体上建立一个控件数组,共十个,caption 属性分别为0-9
    同时修改index属性相应也为0-9,这样caption和index就取得了一致
    至于加号等号一类按钮只要你自己订好对应关系就行了,比如“+”为11,“=”为16
    或者干脆不用数组,因为反正处理程序不一样何必用数组呢,用控件数组只是为了处理功能相近一类控件时用的
      

  4.   

    要创建动态控件数组,首先应该在设计阶段向窗体添加一个控件,并设置该控件的Index属性为0,在运行期间可用Load 控件名(索引号)来动态创建控件。要删除动态创建的控件可用 UnLoad 控件名(索引号)语句。注意:该语句只能删除动态创建的控件,如试图删除在设计期间已有的控件将产生错误。