• 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");
        }
      
      }
    }

    来源:csdn    作者:贾涛    责编:豆豆技术应用

  • 相关阅读:
    re模块---正则表达式
    configparser 配置文件模块
    svn服务器配置
    python中的list的方法
    python正则表达式
    os模块
    高阶函数
    递归
    推导式
    [转]Java中的多线程你只要看这一篇就够了
  • 原文地址:https://www.cnblogs.com/niuniu502/p/1852268.html
Copyright © 2020-2023  润新知