WinForms WebBrowser Control: obliga a todos los enlaces a abrirse externamente en una nueva ventana (IE)
-
03-07-2019 - |
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?
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