0

フォームのWebブラウザを機能させるのに問題があります。実行すると、このエラーが発生します。現在のスレッドがシングルスレッドアパートメントにないため、ActiveXコントロール「8856f961-340a-11d0-a96b-00c04fd705a2」をインスタンス化できません。

このテキストのフォームdesigner.csファイルに移動しますthis.webBrowser2=new System.Windows.Forms.WebBrowser(); そして、私はブラウザを機能させるために何をすべきか本当にわかりません。

Program.csファイルでMTAThreadとSTAThreadの両方を試しましたが、動作しないようです。

ありがとう

4

1 に答える 1

2

STAThreadCOMコントロールはそのアパートの状態を必要とするため、スレッドをとしてマークする必要があります。

これを行う簡単な方法は2つあります。

  • スレッドのエントリポイント(スレッドが開始する関数)を[STAThread]属性でマークします。エントリポイントではなく、呼び出しスタックの下位にある他のメソッドに設定した場合、この属性は適用されません。
  • System.Threading.Threadクラスを使用してスレッドを開始する場合は、スレッドのアパートメント状態をSTAThreadusingに設定します。Thread.SetApartmentState()
于 2011-10-22T02:57:11.890 に答える