C# 怎么让新弹出的窗口也在webBrowser中显示
我在webBrowser中点了一个网站,弹出了一个网页,但是这次是用自己的浏览器了,怎么让这网页也在webBrowser中显示...
我在webBrowser中点了一个网站,弹出了一个网页,但是这次是用自己的浏览器了,怎么让这网页也在webBrowser中显示
展开
2个回答
展开全部
扩充WebBrowser控件,最好的方案:
1、加入Micsofft Internet Controls引用:
项目右键->添加引用->COM->Micsofft Internet Controls,加入后,其为SHDocVw。
2、扩展WebBrowser控件:
public class WebBrowser : System.Windows.Forms.WebBrowser
{
public delegate void NewWindow3EventHandler(ref bool Cancel, string bstrUrl);
//发布NewWindow3事件
public event NewWindow3EventHandler NewWindow3;
protected override void OnHandleCreated(EventArgs e)
{
base.OnHandleCreated(e);
if (this.ActiveXInstance != null)
{
var browser = this.ActiveXInstance as SHDocVw.WebBrowser;
browser.NewWindow3 += WebBrowser_NewWindow3;
}
}
private void WebBrowser_NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl)
{
var handler = NewWindow3;
if (handler != null)
handler(ref Cancel, bstrUrl);
}
}
3、在其NewWindow3事件中,置Cancel = true,再Nvaigate即可:
private void browser_NewWindow3(ref bool Cancel, string bstrUrl)
{
Cancel = true;
browser.Navigate(bstrUrl);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询