WinForms WebBrowser 控件:强制所有链接在新 (IE) 窗口中打开

6

我认为标题已经概括了一切。我使用控件显示一些基本的HTML和一些标记,其中可能还有链接。我想要做的是,强制点击任何链接都会在新的IE窗口中打开此链接,而不是在控件本身导航到该页面。

有什么想法吗?

1个回答

7
您可以处理Navigating事件,将WebBrowserNavigatingEventArgs的Cancel属性设置为true,并使用Process.Start在IE中打开URL。
类似于这样:
private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    // prevents WebBrowser to navigate
    if (e.Url.Host.Length > 0)    // Otherwise the default about:blank when you init the control doesn't work
    {
        e.Cancel = true;

        // Open the URL in an IE window 
        System.Diagnostics.Process process = new System.Diagnostics.Process();
        process.StartInfo.FileName = e.Url.ToString();
        process.Start();
    }
}

2
像魔法一样运行 - 几乎是的。在取消导航之前,我必须检查e.URL.Host.Length> 0。当我设置WebBrowser控件时,它将导航到“about:blank”,当我取消后,我无法设置任何文档文本。无论如何,我明白了,感谢您的帮助... 干杯 - Stefan Koell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接