Элемент управления WinForms WebBrowser: принудительно открывать все ссылки в новом окне (IE) - PullRequest
6 голосов
/ 02 марта 2009

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

Есть идеи?

1 Ответ

7 голосов
/ 02 марта 2009

Вы можете обработать событие Navigating, установить для свойства Cancel объекта WebBrowserNavigatingEventArgs значение true и использовать Process.Start для открытия 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();
    }
}
...