C# リンクを開く難問の解決: Internet Explorer とデフォルトのブラウザ
C# アプリケーション開発でよくある課題は、Web ブラウザー コンポーネントに関するものです。別のブラウザー (Chrome など) がデフォルトとして設定されている場合でも、リンクが Internet Explorer (IE) で予期せず開かれます。この問題は、特に以前は機能していたアプリケーションが突然デフォルトで IE になった場合にイライラする可能性があります。
根本原因を理解する: WebBrowser コントロール
この問題は、C# の WebBrowser
コントロールに起因します。 このコントロールは本質的に IE の埋め込みインスタンスです。 したがって、その中でクリックされたリンクは本質的に IE で開きます。
解決策 1: デフォルトのブラウザで外部リンクを起動する
ユーザーの優先ブラウザで外部 URL を開く場合の簡単なアプローチは次のとおりです。
<code class="language-csharp">System.Diagnostics.Process.Start("http://google.com");</code>
このコードは、デフォルトのブラウザを直接呼び出して、指定された URL を開きます。
解決策 2: Web ブラウザのナビゲーション イベントをインターセプトする
WebBrowser
コントロール自体内のリンクを管理する必要がある場合は、その Navigating
イベントを利用します。これにより、デフォルトのブラウザへのリダイレクトが可能になります:
<code class="language-csharp">private void WebBrowser_Navigating(object sender, NavigatingCancelEventArgs e) { // Open the link using the default browser System.Diagnostics.Process.Start(e.Url); // Prevent the WebBrowser control from handling the navigation e.Cancel = true; }</code>
互換性に関するメモ: .NET Framework、.NET Core、および net50
上記のソリューションは、.NET Framework に対して信頼性があります。ただし、.NET Core または net50 プロジェクトとは互換性がありません。 これらの新しいフレームワークの場合は、CefSharp などの代替ライブラリの使用を検討してください。
以上がC# リンクがデフォルトのブラウザではなく Internet Explorer で開かれるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。