HtmlDocument Klasse

Definition

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 BODYTags , DIVund SPANFORM 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, IHTMLDocument3und 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 BODY-Tag ab.

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 <FORM> Elemente im Dokument ab.

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 <TITLE> Tags im aktuellen HTML-Dokument ab oder legt den Wert fest.

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 HtmlElement mit dem angegebenen HTML-Tagtyp.

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 ID Elements als Suchschlüssel ab.

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.

Gilt für:

Weitere Informationen