webBrowser控制新窗口

当页面为新窗口弹出时,下面代码分别演示如何在新建form中加载页面以及当前form的web控件加载form

1、新建form,这个大多数人都应该知道。用newwindow2就可以了,不过vs2005的web控件是ms封装过的,需要注意一下。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace WindowsApplication24

    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
            this.webBrowser1.Navigate("about:blank");
            (this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow2 += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(Form1_NewWindow2);

        }
        private void button1_Click(object sender, EventArgs e)
        {
            this.webBrowser1.Navigate("www.google.cn");
        }

        void Form1_NewWindow2(ref object ppDisp, ref bool Cancel)
        {
            Form1 frm = new Form1();
            ppDisp = frm.webBrowser1.ActiveXInstance;
            frm.Show();
        }

      
    }
}

2、在当前窗体的web控件中直接加载,这个需要用到NewWindow3 事件。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace WindowsApplication24
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
            this.webBrowser1.Navigate("about:blank");
            (this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += new SHDocVw.DWebBrowserEvents2_NewWindow3EventHandler(Form1_NewWindow3);

        }

        void Form1_NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl)
        {
            Cancel = true;
            this.webBrowser1.Navigate(bstrUrl);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            this.webBrowser1.Navigate("www.google.cn");
        }

        

      
    }
}

转载于:https://www.cnblogs.com/freedom831215/archive/2009/10/03/1577667.html

©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值