HtmlDocument Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ermöglicht programmgesteuerten Zugriff auf ein vom WebBrowser-Steuerelement gehostetes HTML-Dokument auf der obersten Ebene.
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- Vererbung
-
HtmlDocument
Beispiele
Im folgenden Codebeispiel werden Daten aus der Northwind-Datenbank verwendet, um eine HTML TABLE
dynamische Verwendung CreateElementzu erstellen. Die AppendChild Methode wird auch verwendet, um zuerst Zellen ( Elemente) zu Zeilen (TD``TR
Elementen) hinzuzufügen, und dann Zeilen zur Tabelle hinzuzufügen und schließlich die Tabelle am Ende des aktuellen Dokuments anzufügen. Das Codebeispiel erfordert, dass Ihre Anwendung über ein Steuerelement mit dem WebBrowser Namen " WebBrowser1
. Der Code sollte aufgerufen werden, nachdem ein Dokument geladen wurde.
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
Hinweise
HtmlDocument stellt einen verwalteten Wrapper um das Dokumentobjekt von Internet Explorer bereit, das auch als HTML-Dokumentobjektmodell (DOM) bezeichnet wird. Sie erhalten eine Instanz der HtmlDocument Document Eigenschaft des WebBrowser Steuerelements.
HTML-Tags innerhalb eines HTML-Dokuments können ineinander geschachtelt werden. HtmlDocument stellt somit eine Dokumentstruktur dar, deren untergeordnete Elemente Instanzen der HtmlElement Klasse sind. Das folgende Codebeispiel zeigt eine einfache HTML-Datei.
<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>
In diesem Beispiel HtmlDocument wird das gesamte Dokument innerhalb der HTML
Tags dargestellt. Die BODY
, DIV``FORM
und SPAN
Tags werden durch einzelne HtmlElement Objekte dargestellt.
Es gibt verschiedene Möglichkeiten, auf die Elemente in dieser Struktur zuzugreifen. Verwenden Sie die Body Eigenschaft, um auf das BODY
Tag und alle untergeordneten Elemente zuzugreifen. Die ActiveElement Eigenschaft gibt Ihnen das HtmlElement Element auf einer HTML-Seite mit Benutzereingabefokus. Alle Elemente innerhalb einer HTML-Seite können einen Namen haben; die All Auflistung bietet Zugriff auf jeden HtmlElement , der seinen Namen als Index verwendet. GetElementsByTagName gibt eine HtmlElementCollection aller HtmlElement Objekte mit einem bestimmten HTML-Tagnamen zurück, z DIV
. B. oder TABLE
. GetElementById gibt den einzelnen HtmlElement zurück, der der eindeutigen ID entspricht, die Sie angeben. GetElementFromPoint gibt das HtmlElement Auf dem Bildschirm an den angegebenen Mauszeigerkoordinaten zurück.
Sie können auch die Forms Elemente Images , die Benutzereingabeformulare und Grafiken darstellen, durchlaufen.
HtmlDocument basiert auf den nicht verwalteten Schnittstellen, die vom DHTML-DOM von Internet Explorer implementiert werden: IHTMLDocument
, , IHTMLDocument2
, IHTMLDocument3
und IHTMLDocument4
. Nur die am häufigsten verwendeten Eigenschaften und Methoden für diese nicht verwalteten Schnittstellen werden von HtmlDocumentverfügbar gemacht. Sie können direkt mithilfe der DomDocument Eigenschaft auf alle anderen Eigenschaften und Methoden zugreifen, die Sie in den gewünschten nicht verwalteten Schnittstellenzeiger umwandeln können.
Ein HTML-Dokument kann Frames enthalten, die unterschiedliche Fenster innerhalb des WebBrowser Steuerelements sind. Jeder Frame zeigt eine eigene HTML-Seite an. Die Frames Auflistung ist über die Window Eigenschaft verfügbar. Sie können auch die Window Eigenschaft verwenden, um die Größe der angezeigten Seite zu ändern, das Dokument zu scrollen oder Warnungen und Eingabeaufforderungen für den Benutzer anzuzeigen.
HtmlDocument macht die am häufigsten verwendeten Ereignisse verfügbar, die beim Hosten von HTML-Seiten behandelt werden sollen. Für Ereignisse, die nicht direkt über die Schnittstelle verfügbar gemacht werden, können Sie einen Handler für das Ereignis hinzufügen.AttachEventHandler
HTML-Dateien können Tags enthalten, die Code enthaltenSCRIPT
, der in einer der Active Scripting-Sprachen geschrieben wurde, z. B. JScript oder VBScript. Die InvokeScript Methode stellt die Ausführung von Eigenschaften und Methoden bereit, die in einem SCRIPT
Tag definiert sind.
Hinweis
Während die meisten Eigenschaften, Methoden und Ereignisse HtmlDocument dieselben Namen wie beim nicht verwalteten DOM beibehalten haben, wurden einige für die Konsistenz mit dem .NET Framework geändert.
Eigenschaften
ActiveElement |
Enthält das HtmlElement, das momentan den Benutzereingabefokus besitzt. |
ActiveLinkColor |
Ruft die Color eines Links ab, wenn ein Benutzer darauf klickt, oder legt diese fest. |
All |
Ruft eine Instanz von HtmlElementCollection ab, die alle HtmlElement-Objekte für das Dokument speichert. |
BackColor |
Ruft die Hintergrundfarbe des HTML-Dokuments ab oder legt diese fest. |
Body |
Ruft das HtmlElement für das |
Cookie |
Ruft die diesem Dokument zugeordneten HTTP-Cookies ab oder legt diese fest. |
DefaultEncoding |
Ruft die für das aktuelle Dokument verwendete Standardcodierung ab. |
Domain |
Ruft die Zeichenfolge ab, die aus Sicherheitsgründen die Domäne dieses Dokuments beschreibt, oder legt diese fest. |
DomDocument |
Ruft den nicht verwalteten Schnittstellenzeiger für dieses HtmlDocument ab. |
Encoding |
Ruft die Zeichencodierung für das Dokument ab oder legt diese fest. |
Focused |
Ruft einen Wert ab, der angibt, ob das Dokument den Benutzereingabefokus besitzt. |
ForeColor |
Ruft die Textfarbe für das Dokument ab oder legt diese fest. |
Forms |
Ruft eine Auflistung aller |
Images |
Ruft eine Auflistung aller Bildtags im Dokument ab. |
LinkColor |
Ruft die Farbe für Links ab oder legt diese fest. |
Links |
Ruft eine Liste aller Links im HTML-Dokument ab. |
RightToLeft |
Ruft die Textrichtung im aktuellen Dokument ab oder legt diese fest. |
Title |
Ruft den Textwert des |
Url |
Ruft die URL ab, die den Speicherort dieses Dokuments beschreibt. |
VisitedLinkColor |
Ruft die Farbe von Links zu HTML-Seiten ab, die der Benutzer bereits besucht hat, oder legt diese fest. |
Window |
Ruft das mit diesem Dokument verbundene HtmlWindow ab. |
Methoden
AttachEventHandler(String, EventHandler) |
Fügt einen Ereignishandler für das benannte HTML-DOM-Ereignis hinzu. |
CreateElement(String) |
Erstellt ein neues |
DetachEventHandler(String, EventHandler) |
Entfernt einen Ereignishandler aus einem benannten Ereignis im HTML-DOM. |
Equals(Object) |
Überprüft das Objekt und das aktuelle Objekt auf Gleichheit. |
ExecCommand(String, Boolean, Object) |
Führt den angegebenen Befehl für das Dokument aus. |
Focus() |
Legt den Benutzereingabefokus auf das aktuelle Dokument fest. |
GetElementById(String) |
Ruft ein einzelnes HtmlElement ab und verwendet dabei das |
GetElementFromPoint(Point) |
Ruft das an den angegebenen Clientkoordinaten befindliche HTML-Element ab. |
GetElementsByTagName(String) |
Ruft eine Auflistung von Elementen mit dem angegebenen HTML-Tag ab. |
GetHashCode() |
Ruft den Hashcode für dieses Objekt ab. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
InvokeScript(String) |
Führt eine in einer HTML-Seite definierte Active Scripting-Funktion aus. |
InvokeScript(String, Object[]) |
Führt eine in einer HTML-Seite definierte Active Scripting-Funktion aus. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OpenNew(Boolean) |
Ruft ein neues, mit der Write(String)-Methode zu verwendendes HtmlDocument ab. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Write(String) |
Schreibt eine neue HTML-Seite. |
Operatoren
Equality(HtmlDocument, HtmlDocument) |
Gibt einen Wert zurück, der angibt, ob die angegebenen Instanzen von HtmlDocument denselben Wert darstellen. |
Inequality(HtmlDocument, HtmlDocument) |
Gibt einen Wert zurück, der angibt, ob die angegebenen Instanzen von HtmlDocument nicht denselben Wert darstellen. |
Ereignisse
Click |
Tritt ein, wenn der Benutzer auf eine beliebige Stelle im Dokument klickt. |
ContextMenuShowing |
Tritt ein, wenn der Benutzer die Anzeige des Kontextmenüs des Dokuments anfordert. |
Focusing |
Tritt ein, bevor das Dokument den Fokus erhält. |
LosingFocus |
Tritt ein, wenn ein Steuerelement den Fokus verliert. |
MouseDown |
Tritt ein, wenn der Benutzer mit der linken Maustaste klickt. |
MouseLeave |
Tritt ein, wenn der Mauszeiger nicht mehr auf das Dokument zeigt. |
MouseMove |
Tritt ein, wenn der Mauszeiger über das Dokument bewegt wird. |
MouseOver |
Tritt ein, wenn der Mauszeiger über das Dokument bewegt wird. |
MouseUp |
Tritt ein, wenn der Benutzer die linke Maustaste loslässt. |
Stop |
Tritt ein, wenn die Navigation zu einer anderen Webseite unterbrochen wird. |