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 dynamisch mithilfe CreateElementvon HTML TABLE
zu erstellen. Die AppendChild -Methode wird auch verwendet, um zuerst Zellen (TD
Elemente) zu Zeilen (TR
-Elemente) hinzuzufügen, dann zeilen zur Tabelle hinzuzufügen und schließlich, um die Tabelle am Ende des aktuellen Dokuments anzufügen. Das Codebeispiel erfordert, dass Ihre Anwendung über ein WebBrowser Steuerelement mit dem Namen verfügt 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 von HtmlDocument über die Document -Eigenschaft des -Steuerelements WebBrowser .
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 stellt das gesamte Dokument in den HTML
Tags dar. Die BODY
Tags , DIV
und SPAN
FORM
werden durch einzelne HtmlElement Objekte dargestellt.
Es gibt mehrere Möglichkeiten, wie Sie auf die Elemente in dieser Struktur zugreifen können. Verwenden Sie die Body -Eigenschaft, um auf das BODY
Tag und alle untergeordneten Elemente zuzugreifen. Die ActiveElement -Eigenschaft gibt Ihnen die HtmlElement für das -Element auf einer HTML-Seite an, die den Benutzereingabefokus hat. Alle Elemente innerhalb einer HTML-Seite können einen Namen haben. Die All -Auflistung ermöglicht den Zugriff auf jedes HtmlElement Objekt mithilfe ihres Namens als Index.
GetElementsByTagName gibt eine HtmlElementCollection von allen HtmlElement -Objekten mit einem angegebenen HTML-Tagnamen zurück, z DIV
. B. oder TABLE
.
GetElementById gibt die einzelne HtmlElement zurück, die der von Ihnen angegebenen eindeutigen ID entspricht.
GetElementFromPoint gibt den zurück, der HtmlElement auf dem Bildschirm an den angegebenen Mauszeigerkoordinaten zu finden ist.
Sie können auch die Forms - und Images -Auflistung verwenden, um Elemente zu durchlaufen, die Benutzereingabeformulare bzw. -grafiken darstellen.
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 mit 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, bei denen es sich um unterschiedliche Fenster innerhalb des WebBrowser Steuerelements handelt. Jeder Frame zeigt eine eigene HTML-Seite an. Die Frames Auflistung ist über die Window -Eigenschaft verfügbar. Sie können die -Eigenschaft auch verwenden, um die Window Größe der angezeigten Seite zu ändern, im Dokument zu scrollen oder Warnungen und Eingabeaufforderungen für den Benutzer anzuzeigen.
HtmlDocument macht die häufigsten Ereignisse verfügbar, die sie beim Hosten von HTML-Seiten behandeln würden. Für Ereignisse, die nicht direkt von der Schnittstelle verfügbar gemacht werden, können Sie mithilfe AttachEventHandlervon einen Handler für das -Ereignis hinzufügen.
HTML-Dateien können Tags enthalten SCRIPT
, die Code kapseln, der in einer der Active Scripting-Sprachen wie JScript oder VBScript geschrieben wurde. Die InvokeScript -Methode ermöglicht die Ausführung von Eigenschaften und Methoden, die in einem SCRIPT
Tag definiert sind.
Hinweis
Während die meisten Eigenschaften, Methoden und Ereignisse auf HtmlDocument dieselben Namen wie im nicht verwalteten DOM beibehalten haben, wurden einige aus Gründen der Konsistenz mit .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 eine einzelne HtmlElement mithilfe des Attributs des |
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, Object[]) |
Führt eine in einer HTML-Seite definierte Active Scripting-Funktion aus. |
InvokeScript(String) |
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. |