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 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 BODY
balises , FORM
DIV
et 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
, IHTMLDocument3
et 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 |
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 |
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 |
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 |
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 |
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. |