我试图连接到网络浏览器控件,但它不断抛出异常,iwebbrowser2应该实现这样的iwebbrowser2,然后我用Google搜索并找到解决方案,选择com对象然后从那里微软网络浏览器选择后我控制到在表格上申请,我做了。
接下来写了代码
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();
作为堆栈溢出的其他线程建议。添加引用introp.SHdocve但是当我构建68个错误时发生:
错误64
无法嵌入程序集'e:\ XMLreader \ lib \ Interop.SHDocVw.dll'和'e:\ XMLreader \ XMLreader \ obj \ x86 \ Debug \ Interop.SHDocVw.dll中找到的互操作类型'SHDocVw.tagREADYSTATE' ”。 onsider将'Embed Interop Types'属性设置为false。
我右键单击此dll并将embed interop更改为false但没有效果。
我评论了var ie = new IE( frm1.WebBrowser1);
,所有68个错误都消失了。
答案 0 :(得分: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>