WinForms WebBrowser Control: impone l'apertura esterna di tutti i collegamenti in una nuova finestra (IE)

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

Domanda

Penso che il titolo copra tutto. Uso il controllo per visualizzare alcuni HTML di base con alcuni markup e forse ci sono anche dei collegamenti. Quello che voglio fare è forzare il clic su qualsiasi collegamento per aprirlo in una nuova finestra di IE invece di passare a quella pagina nel controllo stesso.

Qualche idea?

È stato utile?

Soluzione

Puoi gestire l'evento Navigating, impostare la proprietà Cancel di WebBrowserNavigatingEventArgs su true e utilizzare Process.Start per aprire l'URL in IE.

Qualcosa del genere:

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();
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top