C#Winforms WebBrowser在默认浏览器中打开链接

sd_*_*ula 3 c# webbrowser-control winforms

我知道这已经在这里多次讨论了,但是在WebBrowser控件中单击打开链接的默认行为对我的应用程序不起作用.

因此,虽然这有效,但在IE中打开了一个链接:

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
    System.Diagnostics.Process.Start(e.Url.ToString());

    e.Cancel = true;
}
Run Code Online (Sandbox Code Playgroud)

我使用下拉列表来更新webBrowser显示的html文件,如下所示:

private void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
   webBrowser1.Url = myURI;  
}
Run Code Online (Sandbox Code Playgroud)

现在我遇到的问题是,使用上面的_Navigating方法,webBrowser不会加载任何后续的URL更改(感谢e.cancel我猜)所以它只显示它加载的第一个html文件.

如果我删除了_Navigating方法,它会更新,但是链接会在同一个webBrowser控件中打开,这是我不想要的.

我怎样才能让它双向工作?

Orl*_*era 6

我希望这可以帮到你.

如果要在浏览器中打开链接,可以添加以下简单代码:

Process.Start("http://google.com");
Run Code Online (Sandbox Code Playgroud)

请记住,有很多关于它的信息.在Stack Overflow中你可以看看这篇文章:如何在C#中的默认浏览器中打开


如果要在其他浏览器中打开链接,可以使用以下代码:

System.Diagnostics.Process.Start("firefox.exe", "http://www.google.com");
Run Code Online (Sandbox Code Playgroud)

不要忘记访问这篇帖子:如何打开备用webbrowser(Mozilla或Firefox)并显示特定的URL?


最后,我可以推荐你这个名为的堆栈流量帖子:.NET C#:WebBrowser控件Navigate()不加载目标URL

我希望这些信息可以帮到你一点点.