首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

webBrowser弹出窗口有关问题

2013-11-26 
webBrowser弹出窗口问题C#.NET 2010,使用webBrowser控件时遇到的问题:1、新建一个工程;2、引入Microsoft Int

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;

热点排行