点击时如何取得 动态 增加 上去的用户控件数组的索引值?

解决方案 »

  1.   

    '类代码:
    Option ExplicitPrivate WithEvents mvarCmBtn As CommandButton
    Public Property Set CmBtn(ByVal vData As CommandButton)
        Set mvarCmBtn = vData
    End Property
    Public Property Get CmBtn() As CommandButton    Set CmBtn = mvarCmBtn
    End PropertyPrivate Sub mvarCmBtn_Click()
    MsgBox mvarCmBtn.Index         '返回索引值
    End Sub'窗体代码:
    Option Explicit
    Dim a() As Class1Private Sub Command1_Click()
    Me.Controls.Remove Me.Controls("cmdobj3") '删除控件
    End SubPrivate Sub Form_Load()
    ReDim a(5)
    Dim i As Integer
    For i = 0 To 5
    Set a(i) = New Class1
    Set a(i).CmBtn = Me.Controls.Add("VB.CommandButton", "cmdObj" & i)
    a(i).CmBtn.Visible = True
    a(i).CmBtn.Top = i * 500
    Next i
    End Sub
      

  2.   

    '类代码:
    Option ExplicitPrivate WithEvents mvarCmBtn As CommandButton
    Dim BtnIndex As Integer
    Public Property Set CmBtn(ByVal vData As CommandButton)
        Set mvarCmBtn = vData
    End Property
    Public Property Get CmBtn() As CommandButton    Set CmBtn = mvarCmBtn
    End PropertyPrivate Sub mvarCmBtn_Click()
    MsgBox BtnIndex                    '返回索引值
    End SubPublic Property Let LetBtnIndex(p_BtnIndex)
    BtnIndex = p_BtnIndex
    End Property'窗体代码:
    Option Explicit
    Dim a() As Class1Private Sub Command1_Click()
    Me.Controls.Remove Me.Controls("cmdobj3") '删除控件
    End SubPrivate Sub Form_Load()
    ReDim a(5)
    Dim I As Integer
    For I = 0 To 5
    Set a(I) = New Class1
    Set a(I).CmBtn = Me.Controls.Add("VB.CommandButton", "cmdObj" & I)
    a(I).LetBtnIndex = I
    a(I).CmBtn.Visible = True
    a(I).CmBtn.Top = I * 500
    Next I
    End Sub以上代码已经测试通过
      

  3.   

    没太明白题意!二位好象跑题了?
    控件数组,有个Index属性,可返回该控件在数组的索引值。
      

  4.   

    关键是,比如我有一次加载的时候我加了四个自己做的控件,但是我在响应我控件的点击事件的时候,我首先要判断我点的是第几个控件数组,然后取出该控件的相关属性值,index属性是先知道了是第几个控件才出来的,在没有知道其属于控件数组的第几个控件前是不能的到的。
      

  5.   

    动态增加控件,有两种常用方法,
    一、是类似于myhgyp那种的集合添加,但这种方法不能直接添加控件数组
    二、使用预建控件数组,用load方法添加,楼主需要Index属性,当然用的就是这种?控件数组的点击事件会比普通控件多返回一个参数:Index,这是不是你要的?
      

  6.   

    是用 load 动态 连接数据库增加的,但是怎么取得 index  的值呢?