我正在編寫一個.NET DLL來遍歷VB6 Form中的所有控件通過byref。如何在VB.NET中找到TypeOf VB6控件
到目前爲止,似乎工作VB.NET代碼:
Public Sub AddFormRefLegacy(ByRef strAppName As String, ByRef objForm As Object)
'update the forms caption
objForm.Caption = FindValue(strAppName, objForm.Name, "", "0", objForm.Caption)
'iterate through all the controls on the form
For Each ctl As Object In objForm.Controls
if TypeOf ctl is Label then
'this doesn't pick up any labels
end if
Next
End Sub
從這個VB6代碼調用:
Dim libDD As New Lib.clsDataDictionary
libDD.AddFormRefLegacy "nnne", Me
但typeof運算符不起作用。有沒有另一種方法來找到控制的類型?
你在比較蘋果和橘子。 VB.NET Label類是一個.NET類,VB6 Label控件是一個ActiveX控件。唯一可能的方法是Marshal.GetIUnknownForObject + Marshal.QueryInterface,但這些控件的IID不能在我知道的任何地方獲得。 – 2010-12-14 15:43:30