8

単純なプロジェクトでエラーが発生します。

これは私のコードです:

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

すでにリファレンスコンポジットAxInterop.ZKFPEngXControlとを追加しましInterop.ZKFPEngXControlた。

デバッグ中にボタンをクリックすると、警告が表示されます。

InvalidActiveXStateExceptionが処理されました。

「タイプ'System.Windows.Forms.AxHost+InvalidActiveXStateException'の例外がスローされました」**

4

2 に答える 2

23

CreateControl()最初にコンポーネントから呼び出してみてください。

于 2011-10-14T15:42:12.447 に答える
1

コンスタンティンの答えはあなたの要件を満たすことですが、ここでもう1つ追加したいと思います。(複数スレッドのシナリオで)スレッドを呼び出すだけでなく、すべてのスレッドを介してこの変更を反映したい場合は、

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

実際、マルチスレッドシナリオでは、スキニングコードがスレッドの1つにある場合、他の現在のスレッドの変更が反映されていない可能性があるため、その時点でこのコードが重要な役割を果たします。

ここに私が言及するいくつかの文書が参考のために親切にそれを通過します:

  1. initwb()メソッド
  2. DirectSkinその他のメソッド
  3. アプリケーションにダイレクトスキンを追加する
于 2014-09-30T12:26:48.463 に答える