Open new web page in new tab in WebBrowser control

后端 未结 3 1715
独厮守ぢ
独厮守ぢ 2020-12-07 04:01

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

3条回答
  •  感情败类
    2020-12-07 04:24

    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

提交回复
热议问题