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 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, 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 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 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 diesen 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 ein einzelnes HtmlElement ab und verwendet dabei das ID-Attribut des Elements als Suchschlüssel.

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.

Gilt für

Siehe auch