HtmlDocument Clase

Definición

Proporciona acceso mediante programación de nivel superior a un documento HTML hospedado por el control WebBrowser.

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
Herencia
HtmlDocument

Ejemplos

En el ejemplo de código siguiente se usan datos de la base de datos Northwind para crear dinámicamente HTML TABLE mediante CreateElement. El AppendChild método también se usa, primero para agregar celdas (TD elementos) a filas (TR elementos), luego para agregar filas a la tabla y, por último, para anexar la tabla al final del documento actual. El ejemplo de código requiere que la aplicación tenga un WebBrowser control denominado WebBrowser1. Se debe llamar al código después de cargar un documento.

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

Comentarios

HtmlDocument proporciona un contenedor administrado alrededor del objeto de documento de Internet Explorer, también conocido como modelo de objetos de documento HTML (DOM). Obtiene una instancia de a través de HtmlDocument la Document propiedad del WebBrowser control .

Las etiquetas HTML dentro de un documento HTML se pueden anidar entre sí. HtmlDocument representa así un árbol de documentos, cuyos elementos secundarios son instancias de la HtmlElement clase . En el ejemplo de código siguiente se muestra un archivo HTML simple.

<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>  

En este ejemplo, HtmlDocument representa todo el documento dentro de las HTML etiquetas. Las BODYetiquetas , FORM DIVy SPAN se representan mediante objetos individualesHtmlElement.

Hay varias maneras de acceder a los elementos de este árbol. Utilice la Body propiedad para tener acceso a la BODY etiqueta y a todos sus elementos secundarios. La ActiveElement propiedad proporciona el HtmlElement elemento para el elemento en una página HTML que tiene el foco de entrada del usuario. Todos los elementos de una página HTML pueden tener un nombre; la All colección proporciona acceso a cada uno HtmlElement con su nombre como índice. GetElementsByTagName devolverá un HtmlElementCollection de todos los HtmlElement objetos con un nombre de etiqueta HTML determinado, como DIV o TABLE. GetElementById devolverá el único HtmlElement correspondiente al identificador único que proporcione. GetElementFromPoint devolverá el HtmlElement que se puede encontrar en la pantalla en las coordenadas del puntero del mouse proporcionadas.

También puede usar la Forms colección y Images para recorrer en iteración elementos que representan formularios de entrada de usuario y gráficos, respectivamente.

HtmlDocument se basa en las interfaces no administradas implementadas por el DOM DHTML de Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3y IHTMLDocument4. Solo las propiedades y métodos usados con más frecuencia en estas interfaces no administradas se exponen mediante HtmlDocument. Puede acceder a todas las demás propiedades y métodos directamente mediante la DomDocument propiedad , que puede convertir al puntero de interfaz no administrado deseado.

Un documento HTML puede contener marcos, que son ventanas diferentes dentro del WebBrowser control. Cada marco muestra su propia página HTML. La Frames colección está disponible a través de la Window propiedad . También puede usar la propiedad para cambiar el Window tamaño de la página mostrada, desplazarse por el documento o mostrar alertas y avisos al usuario.

HtmlDocument expone los eventos más comunes que espera controlar al hospedar páginas HTML. Para los eventos no expuestos directamente por la interfaz, puede agregar un controlador para el evento mediante AttachEventHandler.

Los archivos HTML pueden contener SCRIPT etiquetas que encapsulan el código escrito en uno de los lenguajes de scripting activo, como JScript o VBScript. El InvokeScript método proporciona la ejecución de propiedades y métodos definidos en una SCRIPT etiqueta .

Nota

Aunque la mayoría de las propiedades, métodos y eventos de HtmlDocument han mantenido los mismos nombres que tienen en el DOM no administrado, algunos han cambiado por coherencia con el .NET Framework.

Propiedades

ActiveElement

Proporciona el elemento HtmlElement que tiene actualmente el foco de entrada del usuario.

ActiveLinkColor

Obtiene o establece el Color de un hipervínculo cuando un usuario hace clic en él.

All

Obtiene una instancia de HtmlElementCollection, que almacena todos los objetos HtmlElement para el documento.

BackColor

Obtiene o establece el color de fondo del documento HTML.

Body

Obtiene el objeto HtmlElement para la etiqueta BODY.

Cookie

Obtiene o establece las cookies HTTP asociadas a este documento.

DefaultEncoding

Obtiene la codificación utilizada de manera predeterminada para el documento actual.

Domain

Obtiene o establece la cadena que describe el dominio de este documento por motivos de seguridad.

DomDocument

Obtiene el puntero de interfaz no administrada para este HtmlDocument.

Encoding

Obtiene o establece la codificación de caracteres para este documento.

Focused

Obtiene un valor que indica si el documento tiene el foco de entrada del usuario.

ForeColor

Obtiene o establece el color del texto del documento.

Forms

Obtiene una colección de todos los <elementos FORM> del documento.

Images

Obtiene una colección de todas las etiquetas de imagen del documento.

LinkColor

Obtiene o establece el color de los hipervínculos.

Links

Obtiene una lista de todos los hipervínculos que hay dentro de este documento HTML.

RightToLeft

Obtiene o establece la dirección del texto del documento actual.

Title

Obtiene o establece el valor de texto de la <etiqueta TITLE> en el documento HTML actual.

Url

Obtiene la dirección URL que describe la ubicación de este documento.

VisitedLinkColor

Obtiene o establece el color de los vínculos en las páginas HTML que el usuario ya ha visitado.

Window

Obtiene el objeto HtmlWindow asociado con este documento.

Métodos

AttachEventHandler(String, EventHandler)

Agrega un controlador de eventos para el evento de DOM de HTML indicado.

CreateElement(String)

Crea un nuevo HtmlElement del tipo de etiqueta HTML especificado.

DetachEventHandler(String, EventHandler)

Quita un controlador de eventos de un evento con nombre en el DOM de HTML.

Equals(Object)

Prueba el objeto para ver si es igual que el objeto actual.

ExecCommand(String, Boolean, Object)

Ejecuta el comando especificado sobre el documento.

Focus()

Establece el foco de entrada del usuario en el documento actual.

GetElementById(String)

Recupera un único HtmlElement usando el atributo ID del elemento como clave de búsqueda.

GetElementFromPoint(Point)

Recupera el elemento HTML situado en las coordenadas del cliente especificadas.

GetElementsByTagName(String)

Recupera una colección de elementos con la etiqueta HTML especificada.

GetHashCode()

Recupera el código hash para este objeto.

GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InvokeScript(String)

Ejecuta una función de Active Scripting definida en una página HTML.

InvokeScript(String, Object[])

Ejecuta una función de Active Scripting definida en una página HTML.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OpenNew(Boolean)

Obtiene un nuevo HtmlDocument que se utilizará con el método Write(String).

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
Write(String)

Escribe una nueva página HTML.

Operadores

Equality(HtmlDocument, HtmlDocument)

Devuelve un valor que indica si las instancias especificadas de HtmlDocument representan el mismo valor.

Inequality(HtmlDocument, HtmlDocument)

Devuelve un valor que indica si las instancias especificadas de HtmlDocument no representan el mismo valor.

Eventos

Click

Se produce cuando el usuario hace clic en cualquier lugar del documento.

ContextMenuShowing

Se produce cuando el usuario solicita mostrar el menú contextual del documento.

Focusing

Se produce antes de dar el foco al documento.

LosingFocus

Se produce mientras el foco está abandonando un control.

MouseDown

Se produce cuando el usuario hace clic con el botón primario del mouse.

MouseLeave

Se produce cuando el mouse ya no se está desplazando sobre el documento.

MouseMove

Se produce cuando el puntero del mouse se mueve sobre el documento.

MouseOver

Se produce cuando el puntero del mouse se mueve sobre el documento.

MouseUp

Se produce cuando el usuario suelta el botón primario del mouse.

Stop

Se produce cuando se detiene la navegación a otra página web.

Se aplica a

Consulte también