HtmlDocument Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit un accès programmatique de niveau supérieur à un document HTML hébergé par le WebBrowser contrôle.
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, d’abord pour ajouter des cellules (TD éléments) à des lignes (TR éléments), puis pour ajouter des lignes au tableau, puis 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 de document d’Internet Explorer, également appelé DOM (Html Document Object Model). 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 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 DIVFORM 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 valeur de 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 à chacun à l’aide HtmlElement de son nom en tant qu’index.
GetElementsByTagName retourne un HtmlElementCollection de tous les HtmlElement objets avec un nom d’étiquette HTML donné, tel que DIV ou TABLE.
GetElementById retourne le seul HtmlElement correspondant à l’ID unique que vous fournissez.
GetElementFromPoint retourne l’élément HtmlElement qui se trouve à l’écran sur les coordonnées de pointeur de la souris fournies.
Vous pouvez également utiliser la Forms collection et Images l’itérer via 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 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 vous attendez à 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 le 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.
Note
Bien que la plupart des propriétés, méthodes et événements aient HtmlDocument 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
| Nom | Description |
|---|---|
| ActiveElement |
Fournit le HtmlElement focus d’entrée utilisateur actuellement. |
| ActiveLinkColor |
Obtient ou définit le Color lien hypertexte lorsqu’un utilisateur clique dessus. |
| All |
Obtient une instance de HtmlElementCollection, qui stocke tous les HtmlElement objets du document. |
| BackColor |
Obtient ou définit la couleur d’arrière-plan du document HTML. |
| Body |
Obtient la HtmlElement |
| 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 décrivant le domaine de ce document à des fins 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 de texte du document. |
| Forms |
Obtient une collection de |
| Images |
Obtient une collection de toutes les balises d’image dans le document. |
| LinkColor |
Obtient ou définit la couleur des 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 |
| Url |
Obtient l’URL décrivant l’emplacement de ce document. |
| VisitedLinkColor |
Obtient ou définit la couleur des liens vers des pages HTML que l’utilisateur a déjà visités. |
| Window |
Obtient l’associé HtmlWindow à ce document. |
Méthodes
| Nom | Description |
|---|---|
| AttachEventHandler(String, EventHandler) |
Ajoute un gestionnaire d’événements pour l’événement DOM HTML nommé. |
| CreateElement(String) |
Crée un nouveau |
| DetachEventHandler(String, EventHandler) |
Supprime un gestionnaire d’événements d’un événement nommé sur le DOM HTML. |
| Equals(Object) |
Teste l’objet pour l’égalité par rapport à l’objet actuel. |
| ExecCommand(String, Boolean, Object) |
Exécute la commande spécifiée sur le document. |
| Focus() |
Définit le focus d’entrée utilisateur sur le document actif. |
| GetElementById(String) |
Récupère un seul HtmlElement élément à l’aide de l’attribut de |
| GetElementFromPoint(Point) |
Récupère l’élément HTML situé aux coordonnées du client spécifiées. |
| GetElementsByTagName(String) |
Récupérez une collection d’éléments avec la balise HTML spécifiée. |
| GetHashCode() |
Récupère le code de hachage de cet objet. |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| InvokeScript(String, Object[]) |
Exécute une fonction de script actif définie dans une page HTML. |
| InvokeScript(String) |
Exécute une fonction de script actif définie dans une page HTML. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OpenNew(Boolean) |
Obtient un nouveau HtmlDocument à utiliser avec la Write(String) méthode. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
| Write(String) |
Écrit une nouvelle page HTML. |
Opérateurs
| Nom | Description |
|---|---|
| Equality(HtmlDocument, HtmlDocument) |
Retourne une valeur qui indique si les instances spécifiées HtmlDocument représentent la même valeur. |
| Inequality(HtmlDocument, HtmlDocument) |
Retourne une valeur qui indique si les instances spécifiées HtmlDocument ne représentent pas la même valeur. |
Événements
| Nom | Description |
|---|---|
| Click |
Se produit lorsque l’utilisateur clique n’importe où sur le document. |
| ContextMenuShowing |
Se produit lorsque l’utilisateur demande d’afficher le menu contextuel du document. |
| Focusing |
Se produit avant que le focus soit donné au document. |
| LosingFocus |
Se produit pendant que le focus quitte un contrôle. |
| MouseDown |
Se produit lorsque l’utilisateur clique sur le bouton gauche de la souris. |
| MouseLeave |
Se produit lorsque la souris ne pointe plus sur le document. |
| MouseMove |
Se produit lorsque la souris est déplacée sur le document. |
| MouseOver |
Se produit lorsque la souris est déplacée sur le document. |
| MouseUp |
Se produit lorsque l’utilisateur relâche le bouton gauche de la souris. |
| Stop |
Se produit lorsque la navigation vers une autre page web est arrêtée. |