窗体上有许多控件,怎么才能快带的打印出所有控件的属性名,与属性状态?不光是历遍控件哟,是控件历遍所有属性名,得属性状态。

解决方案 »

  1.   

    '需要引用TypeLib Information
    '一个按钮,一个listbox
    Private Sub Command1_Click()
        Dim TLIA As New TLIApplication
        Dim member As MemberInfo
        Dim mInterfaceInfo As InterfaceInfo
        Set mInterfaceInfo = TLIA.InterfaceInfoFromObject(Me)
        For Each member In mInterfaceInfo.Members
           If member.InvokeKind = INVOKE_PROPERTYGET Then
                List1.AddItem member.Name + "(可读)"
           ElseIf member.InvokeKind = INVOKE_PROPERTYPUT Then
                List1.AddItem member.Name + "(可写)"
           ElseIf member.InvokeKind = INVOKE_FUNC Then
                List1.AddItem member.Name + "(函数)"
           ElseIf member.InvokeKind = INVOKE_PROPERTYPUTREF Then
                List1.AddItem member.Name + "(对象)"
           ElseIf member.InvokeKind = INVOKE_EVENTFUNC Then
                List1.AddItem member.Name + "(事件)"
           Else
                List1.AddItem member.Name + ":" + CStr(member.InvokeKind)
           End If
        Next
        Set member = Nothing
        Set mInterfaceInfo = Nothing
        Set TLIA = NothingEnd Sub
      

  2.   

    '在工程〉引用里选中 TypeLib InformationPrivate Sub Form_Load()
        On Error Resume Next
        Dim ctl As Object
        For Each ctl In Me.Controls
            Dim iInf As InterfaceInfo
            Set iInf = InterfaceInfoFromObject(ctl)
            If Not (iInf Is Nothing) Then
                Dim mem As MemberInfo
                For Each mem In iInf.Members
                    If mem.InvokeKind And INVOKE_PROPERTYGET Then
                        Debug.Print ctl.Name, mem.Name, _
                            "= " & CallByName(ctl, mem.Name, VbGet)
                    End If
                Next
            End If
        Next
    End Sub
      

  3.   

    http://community.csdn.net/Expert/topic/4366/4366284.xml?temp=.7532312