WinForms WebBrowser Control: Forcer l’ouverture externe de tous les liens dans une nouvelle fenêtre (IE)

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

Question

Je pense que le titre couvre tout. J'utilise le contrôle pour afficher du code HTML de base avec des balises et peut-être aussi des liens. Ce que je veux faire, c'est forcer en cliquant sur n'importe quel lien pour que ce lien soit ouvert dans une nouvelle fenêtre IE au lieu de naviguer vers cette page dans le contrôle même.

Une idée?

Était-ce utile?

La solution

Vous pouvez gérer l'événement de navigation, définir la propriété Cancel de WebBrowserNavigatingEventArgs sur true et utiliser Process.Start pour ouvrir l'URL dans IE.

Quelque chose comme ça:

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();
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top