Compartilhar via


Como: Usar o controle WebBrowser no .NET Compact estrutura

O .NET Compact estrutura aceita as funções principais para o Windows Forms WebBrowser controle. Os seguintes membros exigem software Windows Mobile versão 5.0 para Pocket PC ou Smartphone.Esta lista está sujeita a alterações.

As seguintes considerações se aplicam somente ao Windows Mobile 2003 para Pocket PC e Windows Mobile 2003 para Smartphone:

  • The Refresh método lança um NotSupportedException exceção.

  • Porque o WebBrowser controle pode conter subcontroles incorporados no formulário em HTML, você não pode determinar se o WebBrowser controle tem o foco ao monitorar o GotFocus evento. Para solucionar esse problema, use um processo de eliminação de outros controles que podem ter o foco.

  • The Url propriedade não está conjunto em WebBrowserNavigatingEventArgs e retorna uma seqüência de caracteres vazia.

Em um dispositivo que não seja um Pocket PC ou Smartphone que esteja executando o Microsoft Windows CE 5.0, a Navigated e DocumentCompleted eventos ambos ocorrem duas vezes quando um novo URL é visitado. Este erro deverá ser corrigido em futuras versões do Windows CE.

Você pode criar um WebBrowser instância para responder a HelpRequested evento para exibir tópicos da Ajuda online para seu aplicativo.

O .NET Compact estrutura não dá suporte a Document propriedade e suas propriedades relacionadas e eventos, exceto para o DocumentText propriedade. Você pode usar DocumentText para apresentar HTML aos usuários, sistema autônomo para fornecer links e um formulário HTML simples, mas o .NET Compact estrutura não oferece suporte ao acessar o conteúdo HTML de uma página da Web com essa propriedade.

Você pode determinar a resposta para o formulário com o WebBrowserDocumentCompletedEventArgs.Url propriedade no código que manipula o Navigating evento. Um exemplo de código é fornecido no primeiro procedimento a seguir.

Você não pode navegar fora de um WebBrowser controle em um aplicativo Smartphone. Como solução alternativa, você pode detectar um evento chave e colocar o foco em outro controle.Um exemplo de código é fornecido no segundo procedimento a seguir.

Observação:

Essa solução alternativa requer Windows Mobile 5.0 ou o .NET Compact estrutura 3.5 .

Para obter informações Geral sobre como usar o WebBrowser controle, consulte Como: Adicionar recursos do navegador da Web a um Aplicativo Windows Forms.

Para coletar informações dos controles HTML incorporados

  1. Use o DocumentText propriedade para exibir HTML no WebBrowser controle. Este HTML contém um formulário com um link e uma caixa de texto para especificar uma 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. Use o Navigating evento para determinar se o URL contém uma resposta do formulário. Se contiver, navegue para a 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");
             }
         }
     }
    

    No exemplo de código de Visual Basic anterior, a Navigating evento manipulador já está associado ao controle. Declare esse manipulador de eventos translation from VPE for Csharp da seguinte maneira:

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

Para navegar fora do WebBrowser no Smartphone

  • O exemplo de código a seguir coloca o foco em outro controle quando a tecla UP é pressionada na navegação.

    The WebBrowser controle usa a lógica de navegar por TAB do Microsoft Pocket Internet Explorer para permitir que o usuário navegar para links diferentes e controles incorporados no site da Web mostrado pelo controle. Você pode substituir esse padrão de navegação por TAB comportamento usando o KeyPreview propriedade.

    O exemplo de código a seguir supõe que KeyPreview tem sido conjunto para true no construtor do formulário ou no código que manipula o Load evento do formulário.

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

Compilando o código

Este exemplo requer referências aos seguintes namespaces:

Consulte também

Tarefas

Como: Adicionar recursos do navegador da Web a um Aplicativo Windows Forms

Conceitos

Tópicos "como" do .NET compact estrutura