近期由于项目需要,需将网页嵌套在winform窗体里面的webBrowser控件里面,但是不能正常调用下载问题,急需解决?

徐新帅 2017-04-21 09:20:53
近期由于项目需要,需将网页嵌套在winform窗体里面的webBrowser控件里面,通过webBrowser控件对网页进行数据获取和事件监听等操作。 目前只要网页在webBrowser控件里面打开的话,可实现对页面数据的获取及事件的监听(正常的页面导航都会自动嵌套在webBrowser控件中,通过打开新窗体事件及页面加载完成事件可以获取);如果打开附件下载的网页时。总是返回,导航已结束。不能正常下载。代码如下。
using System.ComponentModel;
using System.Windows.Forms;
using mshtml;

namespace EasySoft.Webbrowser
{
/// <summary>
/// 主要作用是屏蔽IFRAME 类的JS错误
/// </summary>
public partial class WebbrowserExt : System.Windows.Forms.WebBrowser
{
public string BaseUrl = string.Empty;
public WebbrowserExt()
{
InitializeComponent();
this.AllowWebBrowserDrop = false;
(this.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += WebbrowserExt_NewWindow3;
(this.ActiveXInstance as SHDocVw.WebBrowser).FileDownload += WebbrowserExt_FileDownload;
}


public WebbrowserExt(IContainer container)
{
container.Add(this);
InitializeComponent();
this.AllowWebBrowserDrop = false;
var IhtmlDocument3 = (IHTMLDocument3)this.Document.DomDocument;
IhtmlDocument3.enableDownload = false;
(this.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += WebbrowserExt_NewWindow3;
(this.ActiveXInstance as SHDocVw.WebBrowser).FileDownload += WebbrowserExt_FileDownload;
}

void WebbrowserExt_FileDownload(bool ActiveDocument, ref bool Cancel)
{
////取消默认的文件下载
//if (!ActiveDocument)
// Cancel = true;
}

void WebbrowserExt_NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl)
{
BaseUrl = bstrUrl;
}

private 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();
}
}
}
...全文
559 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40883661 2019-12-21
  • 打赏
  • 举报
回复
引用 6 楼 温情亿度 的回复:
感谢 各位,问题 已经结局
我也遇到类似的问题,请问楼主是如何解决的?
weixin_40883661 2019-12-20
  • 打赏
  • 举报
回复
引用 6 楼 温情亿度 的回复:
感谢 各位,问题 已经结局
您好,我也遇到同一样的问题,请问是如何解决的?
徐新帅 2019-06-13
  • 打赏
  • 举报
回复
解决了。你的问题,跟我的一样么啊,我是换一种方式实现的。
徐新帅 2018-04-01
  • 打赏
  • 举报
回复
感谢 各位,问题 已经结局
秋的红果实 2017-05-09
  • 打赏
  • 举报
回复
webbrowser自身问题多多,试一试另一个控件gechofx,自己查下它的资料
码农Chan 2017-05-09
  • 打赏
  • 举报
回复
楼主,你的问题解决了吗?和我的问题一样,头疼中
徐新帅 2017-04-21
  • 打赏
  • 举报
回复
引用 1 楼 qq_17486399 的回复:
既然你已经嵌入了网页,你的下载应该和网页有关啊。不应该是你的Winform问题啊
通过浏览器是可以正常使用的。
徐新帅 2017-04-21
  • 打赏
  • 举报
回复
通过浏览器 是可以正常使用的。
大鱼> 2017-04-21
  • 打赏
  • 举报
回复
既然你已经嵌入了网页,你的下载应该和网页有关啊。不应该是你的Winform问题啊

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧