0

我使用 Forms Interop Toolkit 创建了一个 .Net ActiveX 控件。

当我在 VB6 项目中使用该控件时,偶尔会出现以下错误:

对象已加载 (360)

这没有多大意义,因为此错误仅涉及在运行时加载的对象数组,但我的控件不在控件数组中,只是位于表单上。

4

1 回答 1

0

经过大量搜索,我发现了这个网站,它给出了一个解决方案:

在 Disposed 后强制对控件进行垃圾回收:

在以下方法中(由 Forms Interop Toolkit 模板生成):

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)

调用 Dispose 对象。添加一行强制垃圾回收:

ElseIf m.Msg = WM_DESTROY AndAlso Not Me.IsDisposed AndAlso Not Me.Disposing Then
    'Used to ensure that VB6 will cleanup control properly
    Me.Dispose()
    System.GC.Collect() '<-- Add this line
End If
于 2013-10-14T09:22:14.420 回答