当前位置:  开发笔记 > 编程语言 > 正文

C#WebBrowser控件未触发DocumentCompleted事件

如何解决《C#WebBrowser控件未触发DocumentCompleted事件》经验,为你挑选了2个好方法。

我有一个使用C#WebBrowser控件的程序,它需要检测加载哪个页面以确定下一步该做什么.该程序在办公室的大多数员工的计算机上运行良好,但在某些计算机上不起作用.

我已经确定问题是documentCompleted事件没有在那些无法工作的计算机上触发.

该程序使用线程处理数据,并webbrowser.navigate通过委托进行调用.但是我也将代码更改为不使用委托进行导航操作而不改变结果.

我还提出,具有只是一个基本的一个单独的程序WebBrowser和调试textfield,以及DocumentCompleted事件不会使用该程序时起火.

注意:未启动的计算机是具有单核/线程处理器的旧PC.

我对这一点缺乏想法,任何帮助都将不胜感激.



1> tbolon..:

正如CodeBlock所解释的那样,这似乎与安装状态有关 Microsoft.mshtml.dll

我们有客户Microsoft.mshtml.dll在GAC(也不是计算机)中没有,然后该WebBrowser组件永远不会触发任何事件.

通过在WebBrowser类中使用Reflector ,DocumentComplete事件由名为的子类引发,该子类WebBrowserEvent实现私有接口DWebBrowserEvents2.

该接口是ComImport{34A715A0-6587-11D0-924A-0020AFC7AC4D},我想这,是关系到Microsoft.mshtml.dll.

所以我们的解决方案是安装Office 2003 Redistributable Primary Interop Assemblies,它在Program Files上安装DLL然后在GAC上注册它.

注意:不要注意所需的.NET Framework 1.1或办公室,它只是复制一些dll.

注2:2007包似乎包含相同的dll.



2> 小智..:

@帕维尔·L:

这里的问题是您使用了来自mshtml.dll的Web浏览器控件,但.NET Framework不包含此文件。解决方案是将mshtml.dll复制到您的应用程序目录,或将Microsoft.mshtml的“复制本地”属性设置为True。

对不起,我的英语不好:D

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有