请教:如何读取一个容器上的所有控件名称,如:一个Picture1上有几个TEXT和几个COMBOBOX?

解决方案 »

  1.   

    Private Sub Form_Load()
        Dim x As Control
        
        For Each x In Me.Controls
            If (x.Container.Name = Picture1.Name) Then
                Debug.Print x.Name
            End If
        Next
    End Sub
      

  2.   

    有一种情况需要考虑,像PictureBox是Container控件,因此可以通过Control.Container.Name 来获得,但是有时候控件只是位于另外一个控件上(例如CommandButton放在一个Label上面),这时通过Container是无法获得Label的。
      

  3.   

    Dim t As Control
    For Each t In Form1
          If t.Container.Name = "Picture1" Then
                Print t.Name
          End If    
       
    Next t
      

  4.   

    非常感谢TechnoFantasy和boywang(大力水手)
    用这种方法:
    For Each t In Form1
          If t.Container.Name = "Picture1" Then
    .....
    如果我的form1 上有三百个控件,那岂不是每次都要循环判断三百次?