1

私はウェブブラウザコントロールに接続しようとしましたが、iwebbrowser2がこのようなiwebbrowser2を実装する必要があるという例外を継続的にスローしました、それから私はグーグルでこれに対する解決策を見つけました、そしてそこからマイクロソフトウェブブラウザを選択しましたそして私はしました。

次にコードを書いた

var t = new Thread(() =>
{
    Form1 frm1 = new Form1();
    
    //new FormDialogWatcher(frm1.Handle);
    Settings.AutoStartDialogWatcher = false;
    var ie = new IE( frm1.WebBrowser1);
    
    ie.GoTo("http://www.google.com");
});
t.SetApartmentState(ApartmentState.STA);
t.Start();

スタックオーバーフローの他のスレッドがsuggest.added参照introp.SHdocveとして、しかし私がビルドすると68エラーが発生しました:

エラー64

アセンブリ'e:\ XMLreader \ lib \ Interop.SHDocVw.dll'と'e:\ XMLreader \ XMLreader \ obj \ x86 \ Debug\Interop.SHDocVw.dll'の両方にある相互運用機能タイプ'SHDocVw.tagREADYSTATE'を埋め込むことができません。'EmbedInteropTypes'プロパティをfalseに設定することを検討してください。

このdllを右クリックして、埋め込み相互運用機能をfalseに変更しましたが、効果はありませんでした。

コメントアウトするvar ie = new IE( frm1.WebBrowser1);と、68個のエラーがすべてなくなりました。

4

1 に答える 1

0

なぜフォームが必要なのですか。これを試して:

var ie = new IE();

ApartmentState は、構成内のアプリケーション全体に対しても設定できます。

<configuration>
  <configSections>
    <sectionGroup name="NUnit">
      <section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
    </sectionGroup>
  </configSections>

  <NUnit>
    <TestRunner>
      <!-- Valid values are STA,MTA. Others ignored. -->
      <add key="ApartmentState" value="STA" />
    </TestRunner>
  </NUnit>


</configuration>
于 2010-12-24T12:59:45.787 に答える