zoukankan      html  css  js  c++  java
  • WebBrowser中打开新页面

    要求新打开的网页受控于WebBrowser 解决办法很简单,分两情况,一是在当前WebBrowser中打开新页面,二是在新Form中的WebBrowser中打开新页面:
          

             public Form1()
            {
                InitializeComponent();
                this.webBrowser1.AllowWebBrowserDrop = false;  //可在属性里设置,很重要
    
                //在新Form中的WebBrowser中打开
                (this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow2 += new SHDocVw.DWebBrowserEvents2_NewWindow2EventHandler(Form1_NewWindow2);
    
                //在主WebBrowser中打开
                //(this.webBrowser1.ActiveXInstance as SHDocVw.WebBrowser).NewWindow3 += new SHDocVw.DWebBrowserEvents2_NewWindow3EventHandler(Form1_NewWindow3);
            }
    
            void Form1_NewWindow2(ref object ppDisp, ref bool Cancel)
        {
          Form5 frm = new Form5(); //事先建好一个带WebBrowser的窗体
          ppDisp = frm.webBrowser1.ActiveXInstance;
          frm.Show();
        }
    
            void Form1_NewWindow3(ref object ppDisp, ref bool Cancel, uint dwFlags, string bstrUrlContext, string bstrUrl)
            {
                Cancel = true;
                this.webBrowser1.Navigate(bstrUrl);
            }


    然后如果在新窗口打开新页面,主页面和新页面在同一会话中,可互相影响了.

    另:SHDocVw.dll 在 C:/WINDOWS/SYSTEM32下,要引用到项目中来,这个是基础,不应该有疑问吧.
    ————————————————
    版权声明:本文为CSDN博主「niechunyang」的原创文章。
    原文链接:https://blog.csdn.net/niechunyang/article/details/5147665

  • 相关阅读:
    CentOS6.x升级MySQL版本5.1到5.6
    在PHP中使用AES加密算法加密数据
    Roundcube login via PHP script
    JIRA 6.3.6版本部署
    使用iperf测试网卡吞吐性能
    网卡最大传输单位MTU和巨型帧(Jumbo frame)设置
    ethtool 解决网卡丢包严重和网卡原理
    wordclock中文模式快一个小时怎么调整
    docker dcm4chee
    CentOS ISO版本区别
  • 原文地址:https://www.cnblogs.com/towerbit/p/12460115.html
Copyright © 2011-2022 走看看