Partager via


HtmlDocument Classe

Définition

Fournit l'accès par programmation de niveau supérieur à un document HTML hébergé par le contrôle WebBrowser.

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
Héritage
HtmlDocument

Exemples

L’exemple de code suivant utilise des données de la base de données Northwind pour créer dynamiquement un à l’aide CreateElementde HTML TABLE . La AppendChild méthode est également utilisée, d’abord pour ajouter des cellules (TD éléments) à des lignes (TR éléments), puis pour ajouter des lignes au tableau et enfin pour ajouter le tableau à la fin du document actif. L’exemple de code nécessite que votre application dispose d’un WebBrowser contrôle nommé WebBrowser1. Le code doit être appelé après le chargement d’un document.

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

Remarques

HtmlDocument fournit un wrapper managé autour de l’objet document d’Internet Explorer, également appelé DOM (Document Object Model) HTML. Vous obtenez une instance de HtmlDocument via la Document propriété du WebBrowser contrôle .

Les balises HTML à l’intérieur d’un document HTML peuvent être imbriquées les unes dans les autres. HtmlDocument représente donc une arborescence de documents, dont les enfants sont des instances de la HtmlElement classe . L’exemple de code suivant montre un fichier 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>  

Dans cet exemple, HtmlDocument représente l’intégralité du document à l’intérieur des HTML balises. Les BODYbalises , FORMDIVet SPAN sont représentées par des objets individuelsHtmlElement.

Il existe plusieurs façons d’accéder aux éléments de cette arborescence. Utilisez la Body propriété pour accéder à la BODY balise et à tous ses enfants. La ActiveElement propriété vous donne le pour l’élément sur une page HTML qui a le HtmlElement focus d’entrée utilisateur. Tous les éléments d’une page HTML peuvent avoir un nom ; la All collection fournit l’accès à chaque HtmlElement en utilisant son nom comme index. GetElementsByTagName retourne un HtmlElementCollection de tous les HtmlElement objets avec un nom de balise HTML donné, tel que DIV ou TABLE. GetElementById retourne l’unique HtmlElement correspondant à l’ID unique que vous fournissez. GetElementFromPoint retourne le HtmlElement qui se trouve à l’écran aux coordonnées du pointeur de souris fournies.

Vous pouvez également utiliser la Forms collection et Images pour itérer au sein des éléments qui représentent des formulaires d’entrée utilisateur et des graphiques, respectivement.

HtmlDocument est basé sur les interfaces non managées implémentées par le DOM DHTML d’Internet Explorer : IHTMLDocument, IHTMLDocument2, IHTMLDocument3et IHTMLDocument4. Seules les propriétés et méthodes les plus fréquemment utilisées sur ces interfaces non managées sont exposées par HtmlDocument. Vous pouvez accéder à toutes les autres propriétés et méthodes directement à l’aide de la DomDocument propriété , que vous pouvez convertir en pointeur d’interface non managé souhaité.

Un document HTML peut contenir des cadres, qui sont des fenêtres différentes à l’intérieur du WebBrowser contrôle. Chaque image affiche sa propre page HTML. La Frames collection est disponible via la Window propriété . Vous pouvez également utiliser la Window propriété pour redimensionner la page affichée, faire défiler le document ou afficher des alertes et des invites à l’utilisateur.

HtmlDocument expose les événements les plus courants que vous vous attendez à gérer lors de l’hébergement de pages HTML. Pour les événements qui ne sont pas exposés directement par l’interface, vous pouvez ajouter un gestionnaire pour l’événement à l’aide AttachEventHandlerde .

Les fichiers HTML peuvent contenir des balises qui encapsulent SCRIPT du code écrit dans l’un des langages De script actif, comme JScript ou VBScript. La InvokeScript méthode fournit l’exécution des propriétés et des méthodes définies dans une SCRIPT balise.

Notes

Alors que la plupart des propriétés, méthodes et événements sur HtmlDocument ont conservé les mêmes noms que sur le DOM non managé, certains ont été modifiés pour la cohérence avec le .NET Framework.

Propriétés

ActiveElement

Fournit le HtmlElement qui possède actuellement le focus d'entrée utilisateur.

ActiveLinkColor

Obtient ou définit le Color d'un lien hypertexte lorsque l'utilisateur clique dessus.

All

Obtient une instance de HtmlElementCollection qui stocke tous les objets HtmlElement pour le document.

BackColor

Obtient ou définit la couleur d'arrière-plan du document HTML.

Body

Obtient le HtmlElement pour la balise BODY.

Cookie

Obtient ou définit les cookies HTTP associés à ce document.

DefaultEncoding

Obtient l'encodage utilisé par défaut pour le document actif.

Domain

Obtient ou définit la chaîne qui décrit le domaine de ce document pour des raisons de sécurité.

DomDocument

Obtient le pointeur d'interface non managé pour ce HtmlDocument.

Encoding

Obtient ou définit l'encodage de caractères pour ce document.

Focused

Obtient une valeur indiquant si le document a le focus d'entrée utilisateur.

ForeColor

Obtient ou définit la couleur du texte du document.

Forms

Obtient une collection de tous les <FORM> éléments du document.

Images

Obtient une collection de toutes les étiquettes d’image dans le document.

LinkColor

Obtient ou définit la couleur de liens hypertexte.

Links

Obtient une liste de tous les liens hypertexte dans ce document HTML.

RightToLeft

Obtient ou définit la direction du texte dans le document actif.

Title

Obtient ou définit la valeur de texte de la <TITLE> balise dans le document HTML actif.

Url

Obtient l'URL qui décrit l'emplacement de ce document.

VisitedLinkColor

Obtient ou définit la couleur des liens vers les pages HTML que l'utilisateur a déjà visitées.

Window

Obtient le HtmlWindow associé à ce document.

Méthodes

AttachEventHandler(String, EventHandler)

Ajoute un gestionnaire d'événements pour l'événement nommé sur le modèle DOM HTML.

CreateElement(String)

Crée un HtmlElement du type de balise HTML spécifié.

DetachEventHandler(String, EventHandler)

Supprime un gestionnaire d'événements d'un événement nommé sur le DOM HTML.

Equals(Object)

Teste l'objet pour déterminer s'il est égal à l'objet actif.

ExecCommand(String, Boolean, Object)

Exécute la commande spécifiée contre le document.

Focus()

Définit le focus d'entrée d'utilisateur sur le document actif.

GetElementById(String)

Récupère un single HtmlElement à l’aide de l’attribut de l’élément ID comme clé de recherche.

GetElementFromPoint(Point)

Récupère l'élément HTML situé aux coordonnées clientes spécifiées.

GetElementsByTagName(String)

Récupère une collection d’éléments avec l’étiquette HTML spécifiée.

GetHashCode()

Récupère le code de hachage pour cet objet.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
InvokeScript(String)

Exécute une fonction Active Scripting définie dans une page HTML.

InvokeScript(String, Object[])

Exécute une fonction Active Scripting définie dans une page HTML.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OpenNew(Boolean)

Obtient un nouveau HtmlDocument à utiliser avec la méthode Write(String).

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
Write(String)

Écrit une nouvelle page HTML.

Opérateurs

Equality(HtmlDocument, HtmlDocument)

Retourne une valeur qui indique si les instances de HtmlDocument spécifiées représentent la même valeur.

Inequality(HtmlDocument, HtmlDocument)

Retourne une valeur qui indique si les instances de HtmlDocument spécifiées ne représentent pas la même valeur.

Événements

Click

Se produit lorsque l'utilisateur clique dans le document.

ContextMenuShowing

Se produit quand l'utilisateur demande d'afficher le menu contextuel du document.

Focusing

Se produit avant que le focus soit donné au document.

LosingFocus

Se produit quand le focus quitte un contrôle.

MouseDown

Se produit lorsque l'utilisateur clique sur le bouton gauche de la souris.

MouseLeave

Se produit quand la souris ne survole plus le document.

MouseMove

Se produit lorsque la souris est placée au-dessus du document.

MouseOver

Se produit lorsque la souris est placée au-dessus du document.

MouseUp

Se produit quand l’utilisateur relâche le bouton gauche de la souris.

Stop

Se produit quand la navigation vers une autre page web est arrêtée.

S’applique à

Voir aussi