HtmlDocument Classe

Definição

Fornece acesso programático de topo a um documento HTML alojado pelo WebBrowser controlo.

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 seguinte utiliza dados da base de dados Northwind para criar um HTML TABLE algoritmo dinamicamente usando CreateElement. O AppendChild método também é utilizado, primeiro para adicionar células (TD elementos) às linhas (TR elementos), depois para adicionar linhas à tabela e, finalmente, para anexar a tabela ao final do documento atual. O exemplo de código exige que a sua aplicação tenha um WebBrowser controlo chamado WebBrowser1. O código deve ser chamado depois de um documento ter 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

Observações

HtmlDocument fornece um wrapper gerido em torno do objeto documento da Internet Explorer, também conhecido como HTML Document Object Model (DOM). Obtém-se uma instância de HtmlDocument através da Document propriedade do WebBrowser controlo.

As etiquetas HTML dentro de um documento HTML podem ser aninhadas umas dentro das outras. HtmlDocument Assim, representa uma árvore de documentos, cujos filhos são instâncias da HtmlElement classe. O exemplo de código seguinte mostra um ficheiro 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 etiquetas. As BODYetiquetas , DIV, FORM e SPAN são representadas por objetos individuais HtmlElement .

Existem várias formas de aceder aos elementos desta árvore. Use a Body propriedade para aceder à BODY etiqueta e a todos os seus filhos. A ActiveElement propriedade dá-te o HtmlElement elemento numa página HTML que tem foco na entrada do utilizador. Todos os elementos dentro de uma página HTML podem ter um nome; a All coleção oferece acesso a cada um HtmlElement usando o seu nome como índice. GetElementsByTagName devolverá um HtmlElementCollection de todos os HtmlElement objetos com um dado nome de etiqueta HTML, como DIV ou TABLE. GetElementById devolverá o single HtmlElement correspondente ao ID único que fornecer. GetElementFromPoint irá devolver o HtmlElement que pode ser encontrado no ecrã nas coordenadas do ponteiro do rato fornecidas.

Também pode usar a Forms coleção and Images para iterar através de elementos que representam formulários de entrada do utilizador e gráficos, respetivamente.

HtmlDocument baseia-se nas interfaces não geridas implementadas pelo DOM DHTML da Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3 e IHTMLDocument4. Apenas as propriedades e métodos mais usados nestas interfaces não geridas são expostos por HtmlDocument. Pode aceder diretamente a todas as outras propriedades e métodos usando essa DomDocument propriedade, que pode transmitir para o ponteiro de interface não gerido desejado.

Um documento HTML pode conter frames, que são janelas diferentes dentro do WebBrowser controlo. Cada frame apresenta a sua própria página HTML. A Frames coleção está disponível através da Window propriedade. Também pode usar a Window propriedade para redimensionar a página apresentada, deslocar o documento ou mostrar alertas e avisos ao utilizador.

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

Os ficheiros HTML podem conter SCRIPT etiquetas que encapsulam código escrito numa das linguagens Active Scripting, como JScript ou VBScript. O InvokeScript método permite a execução de propriedades e métodos definidos numa SCRIPT etiqueta.

Note

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

Propriedades

Name Description
ActiveElement

Fornece o HtmlElement que atualmente tem foco na entrada do utilizador.

ActiveLinkColor

Obtém ou definem o Color link de um hyperlink quando clicados por um utilizador.

All

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

BackColor

Obtém ou define a cor de fundo do documento HTML.

Body

Recebe a HtmlElement etiqueta BODY .

Cookie

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

DefaultEncoding

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

Domain

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

DomDocument

Obtém o ponteiro de interface não gerida para este HtmlDocument.

Encoding

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

Focused

Recebe um valor que indica se o documento tem foco de entrada do utilizador.

ForeColor

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

Forms

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

Images

Obtém uma coleção de todas as etiquetas de imagem do documento.

LinkColor

Obtém ou definem a cor dos hiperlinks.

Links

Obtém uma lista de todos os hiperlinks dentro deste 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 <TITLE> etiqueta no documento HTML atual.

Url

Obtém o URL que descreve a localização deste documento.

VisitedLinkColor

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

Window

Recebe o HtmlWindow que está associado a este documento.

Métodos

Name Description
AttachEventHandler(String, EventHandler)

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

CreateElement(String)

Cria um novo HtmlElement do tipo de etiqueta HTML especificado.

DetachEventHandler(String, EventHandler)

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

Equals(Object)

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

ExecCommand(String, Boolean, Object)

Executa o comando especificado contra o documento.

Focus()

Define o foco da entrada do utilizador no documento atual.

GetElementById(String)

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

GetElementFromPoint(Point)

Recupera o elemento HTML localizado nas coordenadas do cliente especificadas.

GetElementsByTagName(String)

Recuperar uma coleção de elementos com a tag HTML especificada.

GetHashCode()

Recupera o código hash deste objeto.

GetType()

Obtém o Type da instância atual.

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

Executa uma função Active Scripting definida numa página HTML.

InvokeScript(String)

Executa uma função Active Scripting definida numa página HTML.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OpenNew(Boolean)

Obtém um novo HtmlDocument para usar com o Write(String) método.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
Write(String)

Escreve uma nova página HTML.

Operadores

Name Description
Equality(HtmlDocument, HtmlDocument)

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

Inequality(HtmlDocument, HtmlDocument)

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

evento

Name Description
Click

Ocorre quando o utilizador clica em qualquer parte do documento.

ContextMenuShowing

Ocorre quando o utilizador solicita para mostrar o menu contextual do documento.

Focusing

Ocorre antes de o documento ser dada atenção.

LosingFocus

Acontece enquanto o foco está a sair de um controlo.

MouseDown

Ocorre quando o utilizador clica no botão esquerdo do rato.

MouseLeave

Ocorre quando o rato já não está a pairar sobre o documento.

MouseMove

Ocorre quando o rato é movido sobre o documento.

MouseOver

Ocorre quando o rato é movido sobre o documento.

MouseUp

Ocorre quando o utilizador solta o botão esquerdo do rato.

Stop

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

Aplica-se a

Ver também