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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM