Freigeben über


Gewusst wie: Verwenden des WebBrowser-Steuerelements in .NET Compact Framework

Aktualisiert: November 2007

.NET Compact Framework unterstützt Kernfunktionen des WebBrowser-Steuerelements in Windows Forms. Die folgenden Member erfordern die Software Windows Mobile, Version 5.0, für Pocket PC oder Smartphone. Diese Liste unterliegt Änderungen.

Die folgenden Betrachtungen gelten nur für Windows 2003 für Pocket PC und Windows Mobile 2003 für Smartphone:

  • Die Refresh-Methode löst eine NotSupportedException-Ausnahme aus.

  • Weil das WebBrowser-Steuerelement in das HTML-Formular eingebettete untergeordnete Steuerelemente enthalten kann, lässt sich durch Überwachen des GotFocus-Ereignisses nicht feststellen, ob das WebBrowser-Steuerelement den Fokus besitzt. Zur Problemumgehung sollten Sie ein Verfahren zum Ausschluss anderer Steuerelemente, die den Fokus besitzen könnten, verwenden.

  • Die Url-Eigenschaft wird in WebBrowserNavigatingEventArgs nicht festgelegt und gibt eine leere Zeichenfolge zurück.

Auf anderen Geräte als einem Pocket PC oder Smartphone mit Microsoft Windows CE 5.0 werden das Navigated-Ereignis und das DocumentCompleted-Ereignis zweimal ausgelöst, wenn ein neuer URL besucht wird. Dieser Fehler soll in zukünftigen Versionen von Windows CE korrigiert werden.

Sie können eine WebBrowser-Instanz erstellen, die auf das HelpRequested-Ereignis reagiert und Online-Hilfethemen für die Anwendung anzeigt.

Abgesehen von der DocumentText-Eigenschaft, werden in .NET Compact Framework die Document-Eigenschaft und die zugehörigen Eigenschaften und Ereignisse nicht unterstützt. Mithilfe von DocumentText können Sie Ihren Benutzern HTML-Elemente zur Verfügung stellen, beispielsweise Hyperlinks und einfache HTML-Formulare. .NET Compact Framework unterstützt den Zugriff auf den HTML-Inhalt einer Webseite über diese Eigenschaft jedoch nicht.

Die Reaktion auf das Formular können Sie festlegen, indem Sie die WebBrowserDocumentCompletedEventArgs.Url-Eigenschaft im Ereignishandlercode für das Navigating-Ereignis verwenden. Ein Codebeispiel wird in der ersten Prozedur bereitgestellt, die folgt.

Sie können in einer Smartphone-Anwendung ein WebBrowser-Steuerelement nicht mit Navigationsverfahren verlassen. Zur Problemumgehung können Sie ein Tastenereignis erkennen und den Fokus auf ein anderes Steuerelement festlegen. Ein Codebeispiel wird in der zweiten Prozedur bereitgestellt, die folgt.

Hinweis:

Diese Problemumgehung erfordert Windows Mobile 5.0 oder .NET Compact Framework 3.5.

Allgemeine Informationen über das WebBrowser-Steuerelement finden Sie unter Gewusst wie: Hinzufügen von Webbrowserfunktionen zu einer Windows Forms-Anwendung.

So erfassen Sie Informationen von eingebetteten HTML-Steuerelementen

  1. Verwenden Sie die DocumentText-Eigenschaft, um HTML im WebBrowser-Steuerelement anzuzeigen. Dieser HTML-Code enthält ein Formular mit einem Link und einem Textfeld zur Angabe eines 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. Verwenden Sie das Navigating-Ereignis, um zu bestimmen, ob der URL eine Antwort vom Formular enthält. Wenn dies nicht der Fall ist, navigieren Sie zum 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");
             }
         }
     }
    

    Im vorherigen Visual Basic-Codebeispiel ist dem Steuerelement der Navigating-Ereignishandler bereits zugeordnet. Deklarieren Sie diesen Ereignishandler in C# wie folgt:

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

So navigieren Sie aus dem WebBrowser auf einem Smartphone heraus

  • Im folgenden Codebeispiel wird der Fokus auf ein anderes Steuerelement gelegt, wenn die Nach-Oben-Taste gedrückt wird.

    Im WebBrowser-Steuerelement wird die Tabulatorreihenfolgenlogik von Microsoft Pocket Internet Explorer eingesetzt, um dem Benutzer zu ermöglichen, zu verschiedenen Links und eingebetteten Steuerelementen der im Steuerelement angezeigten Website zu navigieren. Sie können dieses Standardverhalten der Tabulatorreihenfolge überschreiben, indem Sie die KeyPreview-Eigenschaft verwenden.

    Im folgenden Codebeispiel wird unterstellt, dass KeyPreview im Formularkonstruktor oder im Ereignishandlercode für das Load-Ereignis des Formulars auf true festgelegt wurde.

    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);
    }
    

Kompilieren des Codes

Für dieses Beispiel sind Verweise auf die folgenden Namespaces erforderlich:

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen von Webbrowserfunktionen zu einer Windows Forms-Anwendung

Konzepte

Gewusst-wie-Themen für .NET Compact Framework