要求新打開的網頁受控於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