日期:2014-05-17  浏览次数:21075 次

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;
  &