【发布时间】:2011-10-11 13:13:47
【问题描述】:
我正在尝试开发一个 .NET 类,该类使用各种新标题更新 VB6 窗体及其控件(它位于 COM 可见的程序集中)。
我将一个 VB6 表单 ByRef 作为对象传递给 .NET 类,然后更新表单上的标题等,如下所示:
Public Sub AddFormRefLegacy(ByRef objForm As Object)
Try
objForm.Caption = "some new caption"
For Each ctl As Object In objForm.Controls
Select Case TypeName(ctl)
Case "Label"
ctl.caption = "some new caption"
Case "Frame"
ctl.caption = "some new caption"
Case "CommandButton", "PushButton"
ctl.caption = "some new caption"
'etc etc
这在大约 85% 的时间都有效,但有时我会收到 运行时错误 80131500 no such interface (E_NOINTERFACE)
我不确定这是在哪里引发错误,但有人能看出这有什么明显的问题吗?
编辑
这个部分似乎出现了问题:
Case "ITabStrip" 'MS Common Controls 6
For i = 0 To ctl.Tabs.Count - 1 ' this sometimes throws the error!
ctl.Tabs(i + 1).Caption = FindValue(objForm.Name, ctl.Name, i, ctl.Tabs(i + 1).Caption)
Next
【问题讨论】:
标签: c# .net vb.net com-interop