webBrowser弹出窗口问题
C#.NET 2010,使用webBrowser控件时遇到的问题:
1、新建一个工程;
2、引入Microsoft Internet Control 组件(在COM下);
3、在Form1上添加webBrowser组件,并设置URL;
4、新增加一个Form,名称为FrmBaseBrowser,在上面添加webBrowser控件;
5、在Form1的代码内输入以下代码:
public Form1()
{
InitializeComponent();
this.webBrowser1.AllowWebBrowserDrop = false;
var nativeBrowser = (SHDocVw.WebBrowser)webBrowser1.ActiveXInstance;
nativeBrowser.NewWindow2 += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(nativeBrowser_NewWindow2);
}
void nativeBrowser_NewWindow2(ref object ppDisp, ref bool Cancel)
{
FrmBaseBrowser frm = new FrmBaseBrowser(); //事先建好一个带WebBrowser的窗体
frm.Show();
ppDisp = frm.webBrowser1.ActiveXInstance;
}
当打开一个弹出窗口时,会弹出两个窗口,一个空白,一个是有内容的,如何解决弹出两个窗口的问题?是不是哪里设置不对?在线等。。。。 webBrowser 弹出窗口
[解决办法]
额,奇怪,我的都是该弹什么就弹什么啊,跟IE里弹出的东西一样,不会多弹出一个空白窗口啊
能贴一下你访问的URL么
[解决办法]
是不是你运行的Form1,而Form1又调用了FrmBaseBrowser窗口
[解决办法]
使用COM中的Microsoft web browser控件
private void Form1_Load(object sender, EventArgs e)
{
axWebBrowser1.Navigate("https://www.google.com.au");
}
private void axWebBrowser1_NewWindow2(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow2Event e)
{
Form1 frmWB = new Form1();
frmWB.axWebBrowser1.RegisterAsBrowser = true;
e.ppDisp = frmWB.axWebBrowser1.Application;
frmWB.Visible = true;
}
代码来自:
How to use the WebBrowser control NewWindow2 event in Visual C#
http://support.microsoft.com/kb/815714/en-us
[解决办法]
axWebBrowser1_NewWindow2>结尾加上
e.Cancel = true;