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 une HTML TABLE méthode dynamique à l’aide CreateElementde . La AppendChild méthode est également utilisée, tout d’abord pour ajouter des cellules (TD éléments) à des lignes (TR éléments), puis pour ajouter des lignes à la table, puis pour ajouter la table à 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 de document d’Internet Explorer, également appelé DOM (HTML Document Object Model). Vous obtenez une instance du HtmlDocument contrôle via la Document propriété du WebBrowser contrôle.

Les balises HTML à l’intérieur d’un document HTML peuvent être imbriquées entre elles. HtmlDocument représente ainsi 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 et SPAN les balises DIV``FORM 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 la HtmlElement valeur de l’élément sur une page HTML qui a le focus d’entrée utilisateur. Tous les éléments d’une page HTML peuvent avoir un nom ; la All collection fournit l’accès à chacun HtmlElement à l’aide de son nom en tant qu’index. GetElementsByTagName retourne un HtmlElementCollection de tous les HtmlElement objets avec un nom de balise HTML donné, tel que DIV ou TABLE. GetElementById retourne le single HtmlElement correspondant à l’ID unique que vous fournissez. GetElementFromPoint retourne celle HtmlElement qui se trouve sur l’écran à l’aide des coordonnées de pointeur de la souris fournies.

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

HtmlDocumentest basé sur les interfaces non managées implémentées par le DOM DHTML d’Internet Explorer : IHTMLDocument, , , et IHTMLDocument3``IHTMLDocument4. IHTMLDocument2 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 directement à toutes les autres propriétés et méthodes à 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 cadre 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 prévoyez de gérer lors de l’hébergement de pages HTML. Pour les événements non 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 actifs, tels que JScript ou VBScript. La InvokeScript méthode fournit l’exécution de propriétés et de méthodes définies dans une SCRIPT balise.

Notes

Bien que la plupart des propriétés, méthodes et événements sur HtmlDocument ayez conservé les mêmes noms que sur le DOM non géré, 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 <éléments FORM> 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 <balise TITLE> dans le document HTML actuel.

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 HtmlElement en utilisant l’attribut ID de l’élément 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