我有一个.NET Windows窗体,用于托管较旧的VB6 OCX窗体。这是我无法逃避的事情!至少现在......
我不确定这个段落是否有用,但以防万一我会分享这些信息。为了加载此控件,我的.NET应用程序提供了一个配置文件,其中包含有关OCX控件的信息。然后,我将使用反射加载控件,使用Activator.CreateInstance创建一个实例,并将此对象强制转换为System.Windows.Forms.Control。然后,我将它添加到.NET表单的Controls集合中。这种方法适合我。
所以,我想要的是在我的.NET表单中捕获OCX异常和错误,或者有任何方式知道这个OCX表单崩溃了。这可能吗?有没有人有类似的经历?顺便说一句,我使用的是.NET 2.0。
感谢。
答案 0 :(得分:1)
因为没有一个知识渊博的人已经回答了......
On Error Goto
在这些例程中使用错误处理程序。我认为未处理的错误会导致应用程序崩溃(Windows事件下的调用堆栈中没有.Net代码)。如果要将错误传回.Net,则需要发明一种机制来实现。从VB6组件中提升自定义事件,或者从VB6提供回调到.Net。