WinForms WebBrowser controle: Força todos os links para abrir externamente em uma nova janela (IE)

StackOverflow https://stackoverflow.com/questions/600564

Pergunta

Eu acho que as tampas título tudo. Eu uso o controle para exibir algum HTML básico com algumas marcações e há talvez também links em lá. O que eu quero fazer, é clicar vigor em qualquer link para obter este link aberto em uma nova janela do IE em vez de navegar para essa página no próprio controle.

Qualquer idéia?

Foi útil?

Solução

Você pode manipular o evento Navigating, defina a propriedade de WebBrowserNavigatingEventArgs Cancelar para verdadeiro, e usar Process.Start para abrir a URL no IE.

Algo parecido com isto:

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();
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top