打开新的网页在新标签页中WebBrowser控件控件、开新、标签、网页

2023-09-04 00:23:50 作者:少女心狙击手

我用 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