Freigeben über


HtmlDocument Klasse

Definition

Bietet programmgesteuerten Zugriff auf ein vom Steuerelement gehostetes WebBrowser HTML-Dokument auf oberster 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, zuerst zum Hinzufügen von Zellen (TD Elementen) zu Zeilen (TR Elementen), dann zum Hinzufügen von Zeilen zur Tabelle und schließlich zum Anfügen der Tabelle an das Ende des aktuellen Dokuments. 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 für das Dokumentobjekt von Internet Explorer bereit, auch bekannt als HTML Document Object Model (DOM). Sie erhalten eine Instanz der HtmlDocument Eigenschaft Document 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 stellt das gesamte Dokument innerhalb der HTML Tags dar. Die BODYTags DIVund SPAN Die FORM 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 Sammlung ermöglicht den Zugriff auf jeden HtmlElement , der seinen Namen als Index verwendet. GetElementsByTagName gibt eine HtmlElementCollection von allen HtmlElement Objekten 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 die Auffindbar HtmlElement auf dem Bildschirm an den angegebenen Mauszeigerkoordinaten zurück.

Sie können auch die Forms Elemente Images , die Benutzereingabeformulare bzw. -grafiken darstellen, durchlaufen.

HtmlDocumentbasiert auf den nicht verwalteten Schnittstellen, die vom DHTML-DOM von Internet Explorer implementiert werden: IHTMLDocument, , IHTMLDocument2IHTMLDocument3und 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 von der Schnittstelle verfügbar gemacht werden, können Sie einen Handler für das Ereignis mithilfe AttachEventHandlervon .

HTML-Dateien können Tags enthalten SCRIPT , die Code enthalten, 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 für das nicht verwaltete DOM beibehalten haben, wurden einige aus Gründen der Konsistenz mit .NET Framework geändert.

Eigenschaften

Name Beschreibung
ActiveElement

Stellt den HtmlElement Aktuellen Benutzereingabefokus bereit.

ActiveLinkColor

Ruft den Link ab, wenn er von einem Benutzer geklickt wird, oder legt den Color Wert fest.

All

Ruft eine Instanz von HtmlElementCollection, die alle HtmlElement Objekte für das Dokument speichert.

BackColor

Ruft die Hintergrundfarbe des HTML-Dokuments ab oder legt sie fest.

Body

Ruft das HtmlElement Tag ab BODY .

Cookie

Ruft die http-Cookies ab, die diesem Dokument zugeordnet sind, oder legt diese fest.

DefaultEncoding

Ruft die Codierung ab, die standardmäßig für das aktuelle Dokument verwendet wird.

Domain

Ruft die Zeichenfolge ab, die die Domäne dieses Dokuments für Sicherheitszwecke beschreibt, oder legt diese fest.

DomDocument

Ruft den nicht verwalteten Schnittstellenzeiger für dies HtmlDocumentab.

Encoding

Ruft die Zeichencodierung für dieses Dokument ab oder legt sie fest.

Focused

Ruft einen Wert ab, der angibt, ob das Dokument den Benutzereingabefokus hat.

ForeColor

Ruft die Textfarbe für das Dokument ab oder legt sie fest.

Forms

Ruft eine Auflistung aller <FORM> Elemente im Dokument ab.

Images

Ruft eine Auflistung aller Bildtags im Dokument ab.

LinkColor

Ruft die Farbe von Hyperlinks ab oder legt sie fest.

Links

Ruft eine Liste aller Hyperlinks in diesem HTML-Dokument ab.

RightToLeft

Dient zum Abrufen oder Festlegen der Textrichtung im aktuellen Dokument.

Title

Dient zum Abrufen oder Festlegen des Textwerts des <TITLE> Tags im aktuellen HTML-Dokument.

Url

Ruft die URL ab, die den Speicherort dieses Dokuments beschreibt.

VisitedLinkColor

Dient zum Abrufen oder Festlegen der Farbe von Links zu HTML-Seiten, die der Benutzer bereits besucht hat.

Window

Ruft das HtmlWindow diesem Dokument zugeordnete Ab.

Methoden

Name Beschreibung
AttachEventHandler(String, EventHandler)

Fügt einen Ereignishandler für das benannte HTML-DOM-Ereignis hinzu.

CreateElement(String)

Erstellt eine neue HtmlElement des angegebenen HTML-Tagtyps.

DetachEventHandler(String, EventHandler)

Entfernt einen Ereignishandler aus einem benannten Ereignis im HTML-DOM.

Equals(Object)

Testet das Objekt auf Gleichheit mit dem aktuellen Objekt.

ExecCommand(String, Boolean, Object)

Führt den angegebenen Befehl für das Dokument aus.

Focus()

Legt den Fokus der Benutzereingabe auf das aktuelle Dokument fest.

GetElementById(String)

Ruft einen einzelnen HtmlElement mithilfe des Attributs des ID Elements als Suchschlüssel ab.

GetElementFromPoint(Point)

Ruft das HTML-Element ab, das sich an den angegebenen Clientkoordinaten befindet.

GetElementsByTagName(String)

Dient zum Abrufen einer Auflistung von Elementen mit dem angegebenen HTML-Tag.

GetHashCode()

Ruft den Hashcode für dieses Objekt ab.

GetType()

Ruft die 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 der aktuellen Object.

(Geerbt von Object)
OpenNew(Boolean)

Ruft eine neue HtmlDocument für die Write(String) Methode zu verwenden.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
Write(String)

Schreibt eine neue HTML-Seite.

Operatoren

Name Beschreibung
Equality(HtmlDocument, HtmlDocument)

Gibt einen Wert zurück, der angibt, ob die angegebenen HtmlDocument Instanzen denselben Wert darstellen.

Inequality(HtmlDocument, HtmlDocument)

Gibt einen Wert zurück, der angibt, ob die angegebenen HtmlDocument Instanzen nicht denselben Wert darstellen.

Ereignisse

Name Beschreibung
Click

Tritt auf, wenn der Benutzer auf eine beliebige Stelle im Dokument klickt.

ContextMenuShowing

Tritt auf, wenn der Benutzer die Anzeige des Kontextmenüs des Dokuments anfordert.

Focusing

Tritt auf, bevor der Fokus auf das Dokument gesetzt wird.

LosingFocus

Tritt auf, während der Fokus ein Steuerelement verlässt.

MouseDown

Tritt auf, wenn der Benutzer auf die linke Maustaste klickt.

MouseLeave

Tritt auf, wenn der Mauszeiger nicht mehr auf das Dokument zeigt.

MouseMove

Tritt auf, wenn die Maus über das Dokument verschoben wird.

MouseOver

Tritt auf, wenn die Maus über das Dokument verschoben wird.

MouseUp

Tritt auf, wenn der Benutzer die linke Maustaste loslässt.

Stop

Tritt auf, wenn die Navigation zu einer anderen Webseite angehalten wird.

Gilt für:

Weitere Informationen