2011-10-22 33 views
0

我無法讓我的窗體中的Web瀏覽器正常工作。當我運行時,出現此錯誤ActiveX控件'8856f961-340a-11d0-a96b-00c04fd705a2'無法實例化,因爲當前線程不在單線程單元中。C#WebBrowser錯誤線程

它帶我到窗體designer.cs文件到這個文本this.webBrowser2 = new System.Windows.Forms.WebBrowser();我真的不知道該怎麼做才能讓瀏覽器工作。

我已經嘗試了在Program.cs文件中的MTAThread和STAThread似乎無法讓它工作。

感謝

+0

你試試即調用了新的web瀏覽器的方法設置線程的單元狀態到STAThread()控制? –

回答

2

你必須標記你的線程爲STAThread,因爲COM控件需要在公寓狀態。

有兩種簡單的方法可以做到這一點:

  • 標記您的線程的入口點與[STAThread]屬性(即你的線程開始的功能)。如果您沒有將它設置在入口點上,而是在調用堆棧中的某個其他方法上,那麼此屬性將不會應用。
  • 如果你開始使用System.Threading.Thread類線程,然後使用Thread.SetApartmentState()
+0

它已經是一個STAThread,我仍然無法讓它工作 – user1008096

+0

你確定嗎?什麼'Thread.CurrentThread.GetApartmentState()'返回? – foxy

+0

我在哪裏把 – user1008096