WinForms WebBrowser Control: принудительное открытие всех ссылок извне в новом окне (IE).


Я думаю, что название охватывает все это. Я использую элемент управления для отображения некоторых основных HTML с некоторыми наценками, и там, возможно, также есть ссылки. То, что я хочу сделать, это принудительно нажать на любую ссылку, чтобы получить эту ссылку, открытую в новом окне IE вместо перехода на эту страницу в самом элементе управления.

Есть идеи?

1 6

1 ответ:

Вы можете обработать событие навигации, установить свойство Cancel WebBrowserNavigatingEventArgs в true и использовать Process.Начните открывать URL-адрес в IE.

Что-то вроде этого:

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();
    }
}