System.Windows.Forms.AxHost+InvalidActiveXStateException'

本文关键字:AxHost+InvalidActiveXStateException Forms Windows System | 更新日期: 2023-09-27 18:06:55

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

这是我的代码:

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

我已经添加了参考复合材料AxInterop.ZKFPEngXControlInterop.ZKFPEngXControl

在调试时,单击按钮,出现警告:

InvalidActiveXStateException已处理。

类型为"System.Windows.Forms"的异常。AxHost+InvalidActiveXStateException' was thrown"**

System.Windows.Forms.AxHost+InvalidActiveXStateException'

尝试先从您的组件调用CreateControl()

Constantin的答案是满足您的要求,但在这里我想再添加一件事。如果你想通过所有的线程反映这个变化,而不仅仅是通过调用thread(在多线程场景中),那么使用

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

实际上在多线程场景中,如果你的蒙皮代码是在一个线程中,那么它可能不会反映其他当前线程的变化,所以在那个时候,这段代码在其中发挥重要作用。

以下是我提到的一些文件,请参考:

    <
  1. initwb()方法/gh>
  2. DirectSkin other Methods
  3. 添加直接皮肤到应用程序