c#对WebBrowser的扩展资料汇总.docx
C#中的`WebBrowser`控件是一个非常有用的组件,它允许开发者在应用程序中集成Web浏览功能,使用的是Internet Explorer的引擎。在某些情况下,我们可能需要对其进行扩展或定制,以满足特定的需求,例如屏蔽弹出窗口和脚本错误提示。 在COM时代,`WebBrowser`控件是通过引用`SHDocVw.dll`库实现的。要屏蔽脚本错误信息,可以通过设置`Silent`属性为`true`来实现。在C#中,这一操作可以通过以下代码完成: ```csharp WebBrowser1.Silent = true; ``` 在.NET Framework中,微软提供了一个托管版本的`WebBrowser`控件。虽然它提供了一些便利,但在处理脚本错误方面,与COM版本的处理方式有所不同。在.NET环境中,我们可以使用`ScriptErrorsSuppressed`属性来抑制脚本错误提示: ```csharp webBrowser1.ScriptErrorsSuppressed = true; ``` 然而,在.NET Framework 2.0之前,可能需要使用`Silent`属性来实现相同的效果,但这一点没有被明确证实。 对于那些无法通过上述方法完全解决的情况,例如在有多个框架嵌套的页面中,可能需要更深入的错误处理。可以监听`WebBrowser`控件的`Document.Window.Error`事件,并自定义错误处理逻辑: ```csharp this.WebBrowser.Document.Window.Error += new HtmlElementErrorEventHandler(Window_Error); void Window_Error(object sender, HtmlElementErrorEventArgs e) { // 自定义处理代码 e.Handled = true; } ``` 这种方法虽然可以处理一部分错误,但并不完美,尤其在面对复杂场景时。 要彻底解决这个问题,可以创建一个自定义的`WebBrowser`类,继承自`System.Windows.Forms.WebBrowser`,并利用`AxWebBrowser`来访问`SHDocVw.IWebBrowser2`接口。这样做可以更直接地控制控件的行为,例如在实例化时设置`Silent`属性: ```csharp class EWebBrowser : System.Windows.Forms.WebBrowser { SHDocVw.IWebBrowser2 Iwb2; protected override void AttachInterfaces(object nativeActiveXObject) { Iwb2 = (SHDocVw.IWebBrowser2)nativeActiveXObject; Iwb2.Silent = true; base.AttachInterfaces(nativeActiveXObject); } protected override void DetachInterfaces() { Iwb2 = null; base.DetachInterfaces(); } } ``` 通过这种方式,你可以更好地管理和控制`WebBrowser`控件的行为,比如阻止弹出窗口和脚本错误提示,使得应用程序运行更加平稳且用户友好。 扩展C#的`WebBrowser`控件涉及到对COM组件的理解、.NET Framework提供的功能以及自定义类的创建。这些技巧对于开发需要集成网页浏览功能的应用程序,尤其是在需要定制行为或处理特定错误时,显得尤为重要。
![cs](https://img-home.csdnimg.cn/images/20210720083646.png)
![chm](https://img-home.csdnimg.cn/images/20210720083646.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![reg](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/release/download_crawler_static/11305569/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/11305569/bg2.jpg)
![](https://csdnimg.cn/release/download_crawler_static/11305569/bg3.jpg)
![](https://csdnimg.cn/release/download_crawler_static/11305569/bg4.jpg)
![](https://csdnimg.cn/release/download_crawler_static/11305569/bg5.jpg)
剩余63页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/2191abdb765043c89e969ecf40660ca8_sunjilonggood.jpg!1)
- 粉丝: 3
- 资源: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)