Share via


Comment : utiliser le contrôle WebBrowser dans le .NET Compact Framework

Mise à jour : novembre 2007

Le .NET Compact Framework prend en charge les fonctions principales pour le contrôle WebBrowser Windows Forms. Les membres suivants requièrent le logiciel Windows Mobile version 5.0 pour Pocket PC ou Smartphone. Cette liste est sujette à modification.

Les considérations suivantes s'appliquent uniquement à Windows Mobile 2003 pour Pocket PC et Windows Mobile 2003 pour Smartphone :

  • La méthode Refresh lève une exception NotSupportedException.

  • Dans la mesure où le contrôle WebBrowser peut contenir des sous-contrôles incorporés dans le formulaire HTML, vous ne pouvez pas déterminer si le contrôle WebBrowser a le focus en surveillant l'événement GotFocus. Pour éviter cela, utilisez un processus d'élimination des autres contrôles qui peuvent avoir le focus.

  • La propriété Url n'est pas définie dans WebBrowserNavigatingEventArgs et retourne une chaîne vide.

Sur un périphérique autre que Pocket PC ou Smartphone qui exécute Microsoft Windows CE 5.0, les événements Navigated et DocumentCompleted se produisent les deux fois lors de la visite à une nouvelle URL. Il est prévu de corriger cette erreur dans les futures versions de Windows CE.

Vous pouvez créer une instance WebBrowser pour répondre à l'événement HelpRequested pour afficher les rubriques d'aide en ligne pour votre application.

Le .NET Compact Framework ne prend pas en charge la propriété Document ni ses propriétés et événements connexes, à l'exception de la propriété DocumentText. Vous pouvez utiliser DocumentText pour présenter le HTML à vos utilisateurs, par exemple pour fournir des liens et un formulaire HTML simple, mais .NET Compact Framework ne prend pas en charge l'accès au contenu HTML d'une page Web avec cette propriété.

Vous pouvez déterminer la réponse au formulaire avec la propriété WebBrowserDocumentCompletedEventArgs.Url dans le code qui gère l'événement Navigating. Un exemple de code est fourni dans la première procédure qui suit.

Vous ne pouvez pas naviguer hors d'un contrôle WebBrowser dans une application Smartphone. Pour éviter cela, vous pouvez détecter un événement de touche et définir le focus sur un autre contrôle. Un exemple de code est fourni dans la seconde procédure qui suit.

Remarque :

Cette solution de contournement requiert Windows Mobile 5.0 ou le .NET Compact Framework 3.5.

Pour obtenir des informations d'ordre général sur l'utilisation du contrôle WebBrowser, consultez Comment : ajouter des fonctionnalités de navigateur Web à une application Windows Forms.

Pour recueillir des informations à partir de contrôles HTML incorporés

  1. Utilisez la propriété DocumentText pour afficher le code HTML dans le contrôle WebBrowser. Ce code HTML contient un formulaire avec un lien et une zone de texte pour spécifier une URL.

    Dim sb As New StringBuilder()
    sb.Append("<html><body>")
    sb.Append("<a href=")
    sb.Append("""")
    sb.Append("https://www.microsoft.com")
    sb.Append("""")
    sb.Append(">Microsoft</a><p>")
    sb.Append("Specify a URL:<br>")
    sb.Append("<form action=''><input type='text' name='address'/>")
    sb.Append("<br><input type='submit'>")
    sb.Append("</form></body></html>")
    webBrowser1.DocumentText = sb.ToString()
    
    StringBuilder sb = new StringBuilder();
    sb.Append("<html><body>");
    sb.Append("<a href=");
    sb.Append("\"");
    sb.Append("https://www.microsoft.com");
    sb.Append("\"");
    sb.Append(">Microsoft</a><p>");
    sb.Append("Specify a URL:<br>");
    sb.Append("<form action=''><input type='text' name='address'/>");
    sb.Append("<br><input type='submit'>");
    sb.Append("</form></body></html>");
    webBrowser1.DocumentText = sb.ToString();
    
  2. Utilisez l'événement Navigating pour déterminer si l'URL contient une réponse du formulaire. Si tel est le cas, naviguez jusqu'à l'URL.

    Private Sub webBrowser1_Navigating(ByVal sender As Object, ByVal e As WebBrowserNavigatingEventArgs)  Handles webBrowser1.Navigating
        Dim x As Integer
        '  The URL contains the results of the
        '  HTML form following the equals sign.
        x = e.Url.ToString().LastIndexOf("=")
        If x <> - 1 Then
            Dim Redirect As String
            Redirect = e.Url.ToString().Substring((x + 1))
            If Redirect <> "" Then
                ' Error handling code omitted in this example.
                ' Uri constructor throws a UriFormatException if there's
                ' an error.
                webBrowser1.Navigate(New Uri(Redirect))
            Else
                MessageBox.Show("Specify a URL")
            End If
        End If
    
    End Sub    
    
    private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
     {
         int x;
         //  The URL contains the results of the
         //  HTML form following the equals sign.
         x = e.Url.ToString().LastIndexOf("=");
         if (x != -1)
         {
             string Redirect;
             Redirect = e.Url.ToString().Substring(x + 1);
             if (Redirect != "")
             {
                 // Error handling code omitted in this example.
                 // Uri constructor throws a UriFormatException if there's
                 // an error.
                 webBrowser1.Navigate(new Uri(Redirect));
             }
             else
             {
                 MessageBox.Show("Specify a URL");
             }
         }
     }
    

    Dans l'exemple de code Visual Basic précédent, le gestionnaire d'événements Navigating est déjà associé au contrôle. Déclarez ce gestionnaire d'événements en C# comme suit :

      this.webBrowser1.Navigating += new System.Windows.Forms.WebBrowserNavigatingEventHandler(this.webBrowser1_Navigating);
    

Pour naviguer hors du WebBrowser sur le périphérique Smartphone

  • L'exemple de code suivant définit le focus sur un autre contrôle lorsque vous appuyez sur la touche de navigation HAUT.

    Le contrôle WebBrowser utilise une logique de tabulation à partir de Microsoft Pocket Internet Explorer pour permettre à l'utilisateur de naviguer vers différents liens et contrôles incorporés sur le site Web indiqué par le contrôle. Vous pouvez substituer ce comportement de tabulation par défaut à l'aide de la propriété KeyPreview.

    L'exemple de code suivant suppose que KeyPreview a la valeur true dans le constructeur du formulaire ou dans le code qui gère l'événement Load pour le formulaire.

    Protected Overrides Sub OnKeyDown(ByVal keyg As KeyEventArgs) 
        If keyg.KeyCode = Keys.Up Then
            textBox1.Focus()
        End If
        MyBase.OnKeyDown(keyg)
    
    protected override void OnKeyDown(KeyEventArgs keyg)
    {
        if (keyg.KeyCode == Keys.Up)
        {
            textBox1.Focus();
        }
        base.OnKeyDown(keyg);
    }
    

Compilation du code

Cet exemple nécessite des références aux espaces de noms suivants :

Voir aussi

Tâches

Comment : ajouter des fonctionnalités de navigateur Web à une application Windows Forms

Concepts

.Rubriques Comment relatives au .NET Compact Framework