代码:
'引用TLBINF32.Dll
Option ExplicitPrivate Sub Form_Load()
Dim oTLB As InterfaceInfo
Dim i As Integer
Dim j As Long
Dim k As Long
Dim sStr As String
Dim Target As Object
Dim Item As ListItem
Set Target = ListView1
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , , "EventName"
ListView1.ColumnHeaders.Add , , "Parameters"
ListView1.ListItems.Clear
Set oTLB = TLI.InterfaceInfoFromObject(Target)
'这一小段可以取到第三方控件的事件,但取不到VB内置的控件的事件
For i = 2 To TLI.ClassInfoFromObject(Target).Interfaces.Count
For j = 1 To TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Count
Set Item = ListView1.ListItems.Add(, , TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Item(j).Name)
sStr = ""
For k = 1 To TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Item(j).Parameters.Count
sStr = sStr & IIf(sStr = "", "", ",") & TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Item(j).Parameters.Item(k).Name
Next k
Item.SubItems(1) = sStr
' Item.SubItems(2) = TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Item(j).ReturnType
Next j
Next iEnd Sub
我觉得第三方控件的事件应该是取对了,我验证了好多个。
但取不到VB内置控件和类模块中的事件。
'引用TLBINF32.Dll
Option ExplicitPrivate Sub Form_Load()
Dim oTLB As InterfaceInfo
Dim i As Integer
Dim j As Long
Dim k As Long
Dim sStr As String
Dim Target As Object
Dim Item As ListItem
Set Target = ListView1
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , , "EventName"
ListView1.ColumnHeaders.Add , , "Parameters"
ListView1.ListItems.Clear
Set oTLB = TLI.InterfaceInfoFromObject(Target)
'这一小段可以取到第三方控件的事件,但取不到VB内置的控件的事件
For i = 2 To TLI.ClassInfoFromObject(Target).Interfaces.Count
For j = 1 To TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Count
Set Item = ListView1.ListItems.Add(, , TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Item(j).Name)
sStr = ""
For k = 1 To TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Item(j).Parameters.Count
sStr = sStr & IIf(sStr = "", "", ",") & TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Item(j).Parameters.Item(k).Name
Next k
Item.SubItems(1) = sStr
' Item.SubItems(2) = TLI.ClassInfoFromObject(Target).Interfaces.Item(i).Members.Item(j).ReturnType
Next j
Next iEnd Sub
我觉得第三方控件的事件应该是取对了,我验证了好多个。
但取不到VB内置控件和类模块中的事件。
有一个tlbinfo的代码