抛出了类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常

8

我在我的简单项目中遇到了一个错误。

这是我的代码:

if (axZKFPEngX1.InitEngine() == 0) {
    label1.Text = "Connected";
}
else {
    label1.Text = "Connection Failed";
}

我已经添加了参考组件 AxInterop.ZKFPEngXControlInterop.ZKFPEngXControl

在调试时,当我点击按钮时,会出现一个警告:

InvalidActiveXStateException 已被处理。

"System.Windows.Forms.AxHost+InvalidActiveXStateException 类型的异常已被抛出"**

2个回答

23

首先尝试从您的组件中调用 CreateControl() 方法。


1

Constantin的回答已经满足了你的要求,但是我想再补充一点。 如果你想在所有线程中反映这些更改,而不仅仅是通过调用线程(在多线程场景下),那么请使用

CreateControl();
InitWB();
SkinAllThreads();

实际上,在多线程场景中,如果您的皮肤代码在其中一个线程中,则可能不会反映其他当前线程的更改,因此此代码在其中起重要作用。

这里有一些文件,我提到了请参考:

  1. initwb()方法
  2. DirectSkin其他方法
  3. 将Direct Skin添加到应用程序中

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接