簡體   English   中英

C#Winforms WebBrowser在默認瀏覽器中打開鏈接

[英]C# Winforms WebBrowser open links in default browser

我知道這已經在這里多次討論了,但是在WebBrowser控件中單擊打開鏈接的默認行為對我的應用程序不起作用。

因此,雖然這有效,但在IE中打開了一個鏈接:

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

    e.Cancel = true;
}

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

private void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
   webBrowser1.Url = myURI;  
}

現在我遇到的問題是,使用上面的_Navigating方法,webBrowser不會加載任何后續的URL更改(感謝e.cancel我猜)所以它只顯示它加載的第一個html文件。

如果我刪除了_Navigating方法,它會更新,但是鏈接會在同一個webBrowser控件中打開,這是我不想要的。

我怎樣才能讓它雙向工作?

我希望這可以幫到你。

如果要在瀏覽器中打開鏈接,可以添加以下簡單代碼:

Process.Start("http://google.com");

請記住,有很多關於它的信息。 在Stack Overflow中你可以看看這篇文章: 如何在C#中的默認瀏覽器中打開


如果要在其他瀏覽器中打開鏈接,可以使用以下代碼:

System.Diagnostics.Process.Start("firefox.exe", "http://www.google.com");

不要忘記訪問這篇帖子: 如何打開備用webbrowser(Mozilla或Firefox)並顯示特定的URL?


最后,我可以推薦你這個名為的堆棧流量帖子: .NET C#:WebBrowser控件Navigate()不加載目標URL

我希望這些信息可以幫到你一點點。

這是一個老帖子,但我相信我可能會理解原始海報想要做的事情。 如果用戶從下拉列表中選擇了頁面,則他們希望在webbrowser控件中加載頁面,但是加載頁面中的任何鏈接都應該在用戶的Web瀏覽器中打開。 如果情況確實如此,原始海報需要表格上的標志來確定行為。

原始海報只需要一個標志,如下面顯示的linksOpenInSystemBrowser。

using System;
using System.Windows.Forms;

namespace Browser_Test
{
    public partial class myForm : Form
    {
        private bool linksOpenInSystemBrowser = false;

        public myForm()
        {
            InitializeComponent();
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            linksOpenInSystemBrowser = false;
            webBrowser1.Navigate(comboBox1.SelectedItem.ToString());
        }

        private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            if(!linksOpenInSystemBrowser)
            {
                linksOpenInSystemBrowser = true;
                return;
            }

            System.Diagnostics.Process.Start(e.Url.ToString());

            e.Cancel = true;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM