System.Windows.Forms.WebBrowser 在同一窗口或同一会话的新窗口中打开链接 [英] System.Windows.Forms.WebBrowser open links in same window or new window with same session
问题描述
当使用 .NET WebBrowser 控件时,如何使用相同的会话在新窗口中打开链接(即,不在服务器上启动新的 ASP.NET 会话),或者如何捕获新的window事件在同一个WebBrowser控件中打开URL?
When using the .NET WebBrowser control how do you open a link in a new window using the the same session (ie.. do not start a new ASP.NET session on the server), or how do you capture the new window event to open the URL in the same WebBrowser control?
推荐答案
我只是花了一个小时寻找答案,所以我想我会在这里发布结果.您可以使用 SHDocVwCtl.WebBrowser_V1 对象来捕获 NewWindow 事件.
I just spent an hour looking for the answer, so I though I would post the results here. You can use the SHDocVwCtl.WebBrowser_V1 object to capture the NewWindow event.
注意:代码来自 http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_21484555.html#discussion
//-------------------------------VB.NET Version:-------------------------------
Dim WithEvents Web_V1 As SHDocVwCtl.WebBrowser_V1
Private Sub Form_Load()
Set Web_V1 = WebBrowser1.Object
End Sub
Private Sub Web_V1_NewWindow(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Processed As Boolean)
Processed = True
WebBrowser1.Navigate URL
End Sub
//-------------------------------C# Version-------------------------------
private SHDocVw.WebBrowser_V1 Web_V1; //Interface to expose ActiveX methods
private void Form1_Load(object sender, EventArgs e)
{
//Setup Web_V1 interface and register event handler
Web_V1 = (SHDocVw.WebBrowser_V1)this.webBrowser1.ActiveXInstance;
Web_V1.NewWindow += new SHDocVw.DWebBrowserEvents_NewWindowEventHandler(Web_V1_NewWindow);
}
private void Web_V1_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData,string Headers, ref bool Processed)
{
Processed = true; //Stop event from being processed
//Code to open in same window
this.webBrowser1.Navigate(URL);
//Code to open in new window instead of same window
//Form1 Popup = new Form1();
//Popup.webBrowser1.Navigate(URL);
//Popup.Show();
}
这篇关于System.Windows.Forms.WebBrowser 在同一窗口或同一会话的新窗口中打开链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!