Compartilhar via


HtmlDocument Classe

Definição

Fornece acesso programático de nível superior a um documento HTML hospedado pelo controle WebBrowser.

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
Herança
HtmlDocument

Exemplos

O exemplo de código a seguir usa dados do banco de dados Northwind para criar um HTML TABLE dinamicamente usando CreateElement. O AppendChild método também é usado, primeiro para adicionar células (TD elementos) a linhas (TR elementos), depois para adicionar linhas à tabela e, por fim, para acrescentar a tabela ao final do documento atual. O exemplo de código requer que seu aplicativo tenha um WebBrowser controle chamado WebBrowser1. O código deve ser chamado depois que um documento tiver sido carregado.

private void DisplayCustomersTable()
{
    DataSet customersSet = new DataSet();
    DataTable customersTable = null;
    SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Customers", "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");
    sda.Fill(customersTable);
    customersTable = customersSet.Tables[0];

    if (webBrowser1.Document != null)
    {
        HtmlElement tableRow = null;
        HtmlElement headerElem = null;

        HtmlDocument doc = webBrowser1.Document;
        HtmlElement tableElem = doc.CreateElement("TABLE");
        doc.Body.AppendChild(tableElem);

        HtmlElement tableHeader = doc.CreateElement("THEAD");
        tableElem.AppendChild(tableHeader);
        tableRow = doc.CreateElement("TR");
        tableHeader.AppendChild(tableRow);

        foreach (DataColumn col in customersTable.Columns)
        {
            headerElem = doc.CreateElement("TH");
            headerElem.InnerText = col.ColumnName;
            tableRow.AppendChild(headerElem);
        }

        // Create table rows.
        HtmlElement tableBody = doc.CreateElement("TBODY");
        tableElem.AppendChild(tableBody);
        foreach (DataRow dr in customersTable.Rows)
        {
            tableRow = doc.CreateElement("TR");
            tableBody.AppendChild(tableRow);
            foreach (DataColumn col in customersTable.Columns)
            {
                Object dbCell = dr[col];
                HtmlElement tableCell = doc.CreateElement("TD");
                if (!(dbCell is DBNull))
                {
                    tableCell.InnerText = dbCell.ToString();
                }
                tableRow.AppendChild(tableCell);
            }
        }
    }
}
Private Sub DisplayCustomersTable()
    ' Initialize the database connection.
    Dim CustomerData As New DataSet()
    Dim CustomerTable As DataTable

    Try
        Dim DBConn As New SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;")
        Dim DBQuery As New SqlDataAdapter("SELECT * FROM CUSTOMERS", DBConn)
        DBQuery.Fill(CustomerData)
    Catch dbEX As DataException

    End Try

    CustomerTable = CustomerData.Tables("Customers")

    If (Not (WebBrowser1.Document Is Nothing)) Then
        With WebBrowser1.Document
            Dim TableElem As HtmlElement = .CreateElement("TABLE")
            .Body.AppendChild(TableElem)

            Dim TableRow As HtmlElement

            ' Create the table header. 
            Dim TableHeader As HtmlElement = .CreateElement("THEAD")
            TableElem.AppendChild(TableHeader)
            TableRow = .CreateElement("TR")
            TableHeader.AppendChild(TableRow)

            Dim HeaderElem As HtmlElement
            For Each Col As DataColumn In CustomerTable.Columns
                HeaderElem = .CreateElement("TH")
                HeaderElem.InnerText = Col.ColumnName
                TableRow.AppendChild(HeaderElem)
            Next

            ' Create table rows.
            Dim TableBody As HtmlElement = .CreateElement("TBODY")
            TableElem.AppendChild(TableBody)
            For Each Row As DataRow In CustomerTable.Rows
                TableRow = .CreateElement("TR")
                TableBody.AppendChild(TableRow)
                For Each Col As DataColumn In CustomerTable.Columns
                    Dim Item As Object = Row(Col)
                    Dim TableCell As HtmlElement = .CreateElement("TD")
                    If Not (TypeOf (Item) Is DBNull) Then
                        TableCell.InnerText = CStr(Item)
                    End If
                    TableRow.AppendChild(TableCell)
                Next
            Next

        End With
    End If
End Sub

Comentários

HtmlDocument fornece um wrapper gerenciado em torno do objeto de documento do Internet Explorer, também conhecido como DOM (Modelo de Objeto de Documento HTML). Você obtém uma instância de HtmlDocument por meio da Document propriedade do WebBrowser controle .

As marcas HTML dentro de um documento HTML podem ser aninhadas entre si. HtmlDocument representa, portanto, uma árvore de documentos cujos filhos são instâncias da HtmlElement classe . O exemplo de código a seguir mostra um arquivo HTML simples.

<HTML>  
    <BODY>  
        <DIV name="Span1">Simple HTML Form</DIV>  
        <FORM>  
            <SPAN name="TextLabel">Enter Your Name:</SPAN>  
            <INPUT type="text" size="20" name="Text1">  
        </FORM>  
    </BODY>  
</HTML>  

Neste exemplo, HtmlDocument representa todo o documento dentro das HTML marcas. As BODYmarcas , FORMDIVe SPAN são representadas por objetos individuaisHtmlElement.

Há várias maneiras de acessar os elementos nesta árvore. Use a Body propriedade para acessar a BODY marca e todos os seus filhos. A ActiveElement propriedade fornece o HtmlElement para o elemento em uma página HTML que tem o foco de entrada do usuário. Todos os elementos em uma página HTML podem ter um nome; a All coleção fornece acesso a cada HtmlElement um usando seu nome como um índice. GetElementsByTagName retornará um HtmlElementCollection de todos os HtmlElement objetos com um determinado nome de marca HTML, como DIV ou TABLE. GetElementById retornará o único HtmlElement correspondente à ID exclusiva que você fornecer. GetElementFromPoint retornará o HtmlElement que pode ser encontrado na tela nas coordenadas de ponteiro do mouse fornecidas.

Você também pode usar a Forms coleção e Images para iterar por meio de elementos que representam formulários e elementos gráficos de entrada do usuário, respectivamente.

HtmlDocument se baseia nas interfaces não gerenciadas implementadas pelo DHTML DOM do Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3e IHTMLDocument4. Somente as propriedades e métodos usados com mais frequência nessas interfaces não gerenciadas são expostos por HtmlDocument. Você pode acessar todas as outras propriedades e métodos diretamente usando a DomDocument propriedade , que pode ser convertida no ponteiro de interface não gerenciado desejado.

Um documento HTML pode conter quadros, que são janelas diferentes dentro do WebBrowser controle . Cada quadro exibe sua própria página HTML. A Frames coleção está disponível por meio da Window propriedade . Você também pode usar a Window propriedade para redimensionar a página exibida, rolar o documento ou exibir alertas e prompts para o usuário.

HtmlDocument expõe os eventos mais comuns que você esperaria manipular ao hospedar páginas HTML. Para eventos não expostos diretamente pela interface , você pode adicionar um manipulador para o evento usando AttachEventHandler.

Arquivos HTML podem conter SCRIPT marcas que encapsulam o código escrito em uma das linguagens de Script Ativo, como JScript ou VBScript. O InvokeScript método fornece a execução de propriedades e métodos definidos em uma SCRIPT marca.

Observação

Embora a maioria das propriedades, métodos e eventos em HtmlDocument tenham mantido os mesmos nomes que eles têm no DOM não gerenciado, alguns foram alterados para consistência com o .NET Framework.

Propriedades

ActiveElement

Fornece o HtmlElement que tem o foco de entrada do usuário no momento.

ActiveLinkColor

Obtém ou define o Color de um hiperlink quando clicado por um usuário.

All

Obtém uma instância de HtmlElementCollection, que armazena todos os objetos HtmlElement para o documento.

BackColor

Obtém ou define a cor da tela de fundo do nó documento HTML.

Body

Obtém o HtmlElement para a marca BODY.

Cookie

Obtém ou define os cookies HTTP associados a esse documento.

DefaultEncoding

Obtém a codificação usada por padrão para o documento atual.

Domain

Obtém ou define a cadeia de caracteres que descreve o domínio deste documento para fins de segurança.

DomDocument

Obtém o ponteiro da interface não gerenciada para este HtmlDocument.

Encoding

Obtém ou define a codificação de caracteres desse documento.

Focused

Obtém um valor que indica se o documento tem foco de entrada do usuário.

ForeColor

Obtém ou define a cor do texto do documento.

Forms

Obtém uma coleção de todos os elementos <FORM> no documento.

Images

Obtém uma coleção de todas as marcas de imagem no documento.

LinkColor

Obtém ou define a cor dos hiperlinks.

Links

Obtém uma lista de todos os hiperlinks neste documento HTML.

RightToLeft

Obtém ou define a direção do texto no documento atual.

Title

Obtém ou define o valor de texto da marca <TITLE> no documento HTML atual.

Url

Obtém a URL que descreve o local deste documento.

VisitedLinkColor

Obtém ou define a cor dos links para páginas HTML que o usuário já visitou.

Window

Obtém o HtmlWindow associado a esse documento.

Métodos

AttachEventHandler(String, EventHandler)

Adiciona um manipulador de eventos para o evento HTML DOM nomeado.

CreateElement(String)

Cria um novo HtmlElement do tipo de marca HTML especificado.

DetachEventHandler(String, EventHandler)

Remove um manipulador de eventos de um evento nomeado no DOM HTML.

Equals(Object)

Testa o objeto quanto a igualdade em relação ao objeto atual.

ExecCommand(String, Boolean, Object)

Executa o comando especificado no documento.

Focus()

Define o foco de entrada do usuário no documento atual.

GetElementById(String)

Recupera um único HtmlElement usando o atributo ID do elemento como um termo de pesquisa.

GetElementFromPoint(Point)

Recupera o elemento HTML localizado nas coordenadas de cliente especificadas.

GetElementsByTagName(String)

Recupera uma coleção de elementos com a marca HTML especificada.

GetHashCode()

Recupera o código hash para esse objeto.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InvokeScript(String, Object[])

Executa uma função de script ativo definida em uma página HTML.

InvokeScript(String)

Executa uma função de script ativo definida em uma página HTML.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OpenNew(Boolean)

Obtém um novo HtmlDocument a ser usado com o método Write(String).

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
Write(String)

Grava uma nova página HTML.

Operadores

Equality(HtmlDocument, HtmlDocument)

Retorna um valor que indica se as instâncias de HtmlDocument especificadas representam o mesmo valor.

Inequality(HtmlDocument, HtmlDocument)

Retorna um valor que indica se as instâncias de HtmlDocument especificadas não representam o mesmo valor.

Eventos

Click

Ocorre quando o usuário clica em qualquer lugar no documento.

ContextMenuShowing

Ocorre quando o usuário solicita para exibir o menu de contexto do documento.

Focusing

Ocorre antes do foco ser fornecido para o documento.

LosingFocus

Ocorre enquanto o foco está saindo de um controle.

MouseDown

Ocorre quando o usuário clica no botão esquerdo do mouse.

MouseLeave

Ocorre quando o cursor do mouse não está mais passando sobre o documento.

MouseMove

Ocorre quando o mouse é movido sobre o documento.

MouseOver

Ocorre quando o mouse é movido sobre o documento.

MouseUp

Ocorre quando o usuário libera o botão esquerdo do mouse.

Stop

Ocorre quando a navegação para outra página da Web é interrompida.

Aplica-se a

Confira também