我用Controls.Add的方法添加了一系列textbox,但是不知道怎么写这些控件的双击事件,请教高手
代码:
 Dim strTxt As String
   Dim txtObj As Object
'添加文本框
        strTxt = "txtObj" & h
        Set txtObj = frmStep.Controls.Add("VB.textbox", strTxt, frmStep.Picture1)
h是全局变量
控件添加于另一个窗体中的picturebox中

解决方案 »

  1.   

    http://www.qqgb.com/Program/VB/VBJQ/Program_188628.html
      

  2.   

    新建一个类文件,名为CMyTextBox,其代码如下: 
    Option ExplicitPrivate WithEvents m_txtObj As TextBox
    Private m_iIndex As Integer
    Private m_sObjectName As String
    Public Property Set MyTextBox(value As TextBox)
        Set m_txtObj = value
    End PropertyPublic Property Get MyTextBox() As TextBox
        Set MyTextBox = m_txtObj
    End PropertyPublic Property Let Index(value As Integer)
        m_iIndex = value
    End PropertyPublic Property Get Index() As Integer
        Index = m_iIndex
    End PropertyPublic Property Let ObjectName(value As String)
        m_sObjectName = value
    End PropertyPublic Property Get ObjectName() As String
        ObjectName = m_sObjectName
    End PropertyPrivate Sub m_txtObj_DblClick()
        MsgBox "双击了" & m_sObjectName & " 序号为 " & CStr(m_iIndex)
    End Sub
    以下为窗体代码:
    Option Explicit
    Private m_oMyObjs(0 To 10) As CMyTextBoxPrivate Sub Command1_Click()
        Dim i As Long
        Dim strTxt As String
        
        strTxt = "txtObj"
        For i = 0 To 10
            Set m_oMyObjs(i) = New CMyTextBox
            With m_oMyObjs(i)
                .Index = i
                .ObjectName = strTxt & CStr(i)
                Set .MyTextBox = frmStep.Controls.Add("VB.textbox", .ObjectName, frmStep.Picture1)
                With .MyTextBox
                    .Left = 100 * i
                    .Top = 100 * i
                    .Visible = True
                End With
            End With
        Next
    End Sub