2009-03-01 4 views
6

タイトルはすべてそれをカバーしていると思います。私はいくつかのマークアップでいくつかの基本的なHTMLを表示するためにコントロールを使用し、おそらくそこにもリンクがあります。私がやりたいことは、強制的にリンクをクリックしてコントロール自体のページに移動するのではなく、新しいIEウィンドウでこのリンクを開くことです。WinForms WebBrowser Control:新しい(IE)ウィンドウで外部リンクを開くようにすべてのリンクを強制します。

答えて

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かどうかを確認しなければなりませんでした。 Webブラウザコントロールを設定すると、「about:blank」に移動します。これをキャンセルすると、ドキュメントのテキストを設定できません。 とにかく、あなたのおかげで、私はそれを得ました... 歓声 –

関連する問題