dim mytext as textbox假设form1存在text1的textbox控件set mytext=callbyname(form1, "text1", vbget)

解决方案 »

  1.   

    我动态生成了一个textbox控件
    Set t = Me.Controls.Add("VB.textbox", "T1")
    With t
      .Top = 1000
      .Left =1000
      .Height = 10
      .Width = 40
      .Visible = True
      .ZOrder
      .Text = ""
    End With
    那为什么用
    msgbox T1.name
    会出错呢,错误说要求对象,怎么解决???
      

  2.   

    那如果我要在其他的过程中调用这个控件,比如在
    command1_click过程中动态生成了这个控件,而又想在command2_click中用
    msgbox来显示它的.name怎么办,因为我动态生成的控件不仅仅是一个,是一组,
    Private Sub Command8_Click()
    Dim t
    k = 0
    For Each element In Form1.Controls
    If Trim(CStr(TypeName(element))) = "TextBox" Then
    k = k + 1
    End If
    Next
    If k <= 12 Then
    Set t = Me.Controls.Add("VB.textbox", "T" & k)
    MsgBox t.Name
    With t
      .Top = Command8.Top + 5
      .Left = Command8.Left + Command8.Width + 10 + k * 50
      .Height = 10
      .Width = 40
      .Visible = True
      .ZOrder
      .Text = ""
    End With
    End If
    End Sub
      

  3.   

    t 是 object
    T1 是 name
      

  4.   

    动态的您不能用callbyname来获得
      

  5.   

    Dim t(10) As TextBox
    Set t(k) = Me.Controls.Add("VB.textbox", "T" & k)
      

  6.   

    自己解决了,方法如下,谢谢各位,结帐!
    Dim t()'全局变量数组
    Private Sub Command7_Click()
    For Each element In t
    MsgBox element.Name
    Next
    End SubPrivate Sub Command8_Click()
    k = 0
    For Each element In Form1.Controls
    If Trim(CStr(TypeName(element))) = "TextBox" Then
    k = k + 1
    End If
    Next
    ReDim Preserve t(k)
    If k <= 12 Then
    Set t(k) = Me.Controls.Add("VB.textbox", "T" & k)
    MsgBox t(k).Name
    With t(k)
      .Top = Command8.Top + 5
      .Left = Command8.Left + Command8.Width + 10 + k * 50
      .Height = 10
      .Width = 40
      .Visible = True
      .ZOrder
      .Text = ""
    End With
    End If
    End Sub