WinForms WebBrowser Control: obliga a todos los enlaces a abrirse externamente en una nueva ventana (IE)

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

Pregunta

Creo que el título lo cubre todo. Utilizo el control para mostrar HTML básico con algunas marcas y quizás también haya enlaces allí. Lo que quiero hacer es forzar el clic en cualquier enlace para abrir este enlace en una nueva ventana de IE en lugar de navegar a esa página en el control mismo.

¿Alguna idea?

¿Fue útil?

Solución

Puede controlar el evento de navegación, establecer la propiedad Cancelar de WebBrowserNavigatingEventArgs en true y usar Process.Start para abrir la URL en IE.

Algo como esto:

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top