本文介绍了打开新的网页在新标签页中WebBrowser控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用 web浏览器
控件在我的C#应用程序,我想开在它的网页。
它完全做到了。
我的问题:
在网页上,它的目标是任何链接 _blank
将在新的IE浏览器窗口中打开。
我想在我的应用程序中打开新的标签,例如链接。
怎么办呢?
谢谢!
解决方案
私人无效Browser_ProgressChanged(对象发件人,WebBrowserProgressChangedEventArgs E)
{
VAR web浏览器=(web浏览器)发送器;
如果(webBrowser.Document!= NULL)
{
的foreach(在webBrowser.Document.All的HtmlElement标签)
{
如果(tag.Id == NULL)
{
tag.Id =的String.Empty;
开关(tag.TagName.ToUpper())
{
案A:
{
tag.MouseUp + =新HtmlElementEventHandler(link_MouseUp);
打破;
}
}
}
}
}
}
私人无效link_MouseUp(对象发件人,HtmlElementEventArgs E)
{
VAR链接=(HtmlElement元素)发送;
mshtml.HTMLAnchorElementClass A =(mshtml.HTMLAnchorElementClass)link.DomElement;
开关(e.MouseButtons pressed)
{
案例MouseButtons.Left:
{
如果((a.target = NULL和放大器;!&安培; a.target.ToLower()==_blank)|| e.ShiftKey pressed || e.MouseButtons pressed == MouseButtons.Middle)
{
AddTab(a.href);
}
其他
{
CurrentBrowser.TryNavigate(a.href);
}
打破;
}
案例MouseButtons.Right:
{
CurrentBrowser.ContextMenuStrip = NULL;
VAR contextTag =新ContextTag();
contextTag.Element =一个;
contextHtmlLink.Tag = contextTag;
contextHtmlLink.Show(Cursor.Position);
打破;
}
}
}
多见于 dotBrowser.sf.net 项目
I'm using WebBrowser
control in my c# application, and I want to open web pages in it.
It's completely done.
My problem:
Any link in the web page that its target is _blank
will open in new IE Window.
I'd like to open such link in new tab in my application.
How to do it?
Thanks!
解决方案
private void Browser_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
var webBrowser = (WebBrowser)sender;
if (webBrowser.Document != null)
{
foreach (HtmlElement tag in webBrowser.Document.All)
{
if (tag.Id == null)
{
tag.Id = String.Empty;
switch (tag.TagName.ToUpper())
{
case "A":
{
tag.MouseUp += new HtmlElementEventHandler(link_MouseUp);
break;
}
}
}
}
}
}
private void link_MouseUp(object sender, HtmlElementEventArgs e)
{
var link = (HtmlElement)sender;
mshtml.HTMLAnchorElementClass a = (mshtml.HTMLAnchorElementClass)link.DomElement;
switch (e.MouseButtonsPressed)
{
case MouseButtons.Left:
{
if ((a.target != null && a.target.ToLower() == "_blank") || e.ShiftKeyPressed || e.MouseButtonsPressed == MouseButtons.Middle)
{
AddTab(a.href);
}
else
{
CurrentBrowser.TryNavigate(a.href);
}
break;
}
case MouseButtons.Right:
{
CurrentBrowser.ContextMenuStrip = null;
var contextTag = new ContextTag();
contextTag.Element = a;
contextHtmlLink.Tag = contextTag;
contextHtmlLink.Show(Cursor.Position);
break;
}
}
}
See more at dotBrowser.sf.net project
这篇关于打开新的网页在新标签页中WebBrowser控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!