Exporter (0) Imprimer
Développer tout

HtmlDocument, classe

Remarque : cette classe est nouvelle dans le .NET Framework version 2.0.

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

Espace de noms : System.Windows.Forms
Assembly : System.Windows.Forms (dans system.windows.forms.dll)

public sealed class HtmlDocument
public final class HtmlDocument
public final class HtmlDocument

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

Les balises HTML dans un document HTML peuvent être imbriquées l'une dans l'autre. HtmlDocument représente donc une arborescence de documents dont les enfants sont instances de la classe HtmlElement. L'exemple de code suivant représente 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 le document entier à l'intérieur des balises HTML. Les balises BODY, DIV, FORM et SPAN sont représentées par des objets HtmlElement individuels.

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

Vous pouvez également utiliser la collection Forms et Images pour parcourir les éléments qui représentent respectivement des formulaires et des graphiques d'entrée d'utilisateur.

HtmlDocument est basé sur les interfaces non managées implémentées par le DOM DHTML d'Internet Explorer : IHTMLDocument, IHTMLDocument2, IHTMLDocument3 et IHTMLDocument4. Seules les propriétés et les méthodes les plus fréquemment utilisées sur ces interfaces non managées sont exposées par HtmlDocument. Vous pouvez accéder directement à toutes les autres propriétés et méthodes à l'aide de la propriété DomDocument sur laquelle vous pouvez effectuer un cast vers le pointeur d'interface non managé désiré.

Un document HTML peut contenir des frames qui sont des fenêtres différentes dans le contrôle WebBrowser. Chaque frame affiche sa propre page HTML. La collection Frames est disponible en dehors de la propriété Window. Vous pouvez également utiliser la propriété Window 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 rencontrerez lors de l'hébergement de pages HTML. Pour des événements non exposés directement par l'interface, vous pouvez ajouter un gestionnaire pour l'événement à l'aide de AttachEventHandler.

Les fichiers HTML peuvent contenir des balises SCRIPT qui encapsulent le code écrit dans l'un des langages Active Scripting, tels que JScript ou VBScript. La méthode InvokeScript permet l'exécution de propriétés et de méthodes définies dans une balise SCRIPT.

RemarqueRemarque

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

L'exemple de code suivant utilise des données de la base de données Northwind pour créer HTML TABLE dynamiquement à l'aide de CreateElement. La méthode AppendChild est également utilisée, tout d'abord pour ajouter des cellules (éléments TD) aux lignes (éléments TR), puis pour ajouter des lignes au tableau, et enfin pour ajouter le tableau à la fin du document actif. Cet exemple de code requiert que votre application possède un contrôle WebBrowser nommé WebBrowser1.

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

System.Object
  System.Windows.Forms.HtmlDocument

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft