0 von 2 fanden dies hilfreich - Dieses Thema bewerten.

HtmlDocument-Klasse

Aktualisiert: November 2007

Ermöglicht programmgesteuerten Zugriff auf ein vom WebBrowser-Steuerelement gehostetes HTML-Dokument auf der obersten Ebene.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
public sealed class HtmlDocument
/** @attribute PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust") */
public final class HtmlDocument
public final class HtmlDocument

HtmlDocument stellt einen verwalteten Wrapper für das Dokumentenobjekt in Internet Explorer bereit, das auch als HTML-DOM (Document Object Model) bekannt ist. Mithilfe der Document-Eigenschaft des WebBrowser-Steuerelements erhalten Sie eine Instanz von HtmlDocument.

HTML-Tags in einem HTML-Dokument können ineinander geschachtelt werden. HtmlDocument stellt somit eine Dokumentstruktur dar, deren untergeordnete Elemente Instanzen der HtmlElement-Klasse darstellen. Im folgenden Codebeispiel wird eine einfache HTML-Datei gezeigt.

<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 stellt HtmlDocument das gesamte Dokument innerhalb der HTML-Tags dar. Die Tags BODY, DIV, FORM und SPAN werden durch einzelne HtmlElement-Objekte dargestellt.

Es gibt mehrere Möglichkeiten, wie Sie auf die Elemente in dieser Struktur zugreifen können. Mit der Body-Eigenschaft können Sie auf das BODY-Tag und alle zugehörigen untergeordneten Elemente zugreifen. Die ActiveElement-Eigenschaft gibt Ihnen das HtmlElement für das Element auf einer HTML-Seite, das den Benutzereingabefokus besitzt. Alle Elemente innerhalb einer HTML-Seite können einen Namen haben. Die All-Auflistung ermöglicht den Zugriff auf jedes HtmlElement und verwendet dabei dessen Namen als Index. GetElementsByTagName gibt eine HtmlElementCollection aller HtmlElement-Objekte mit einem gegebenen HTML-Tagnamen zurück, z. B. DIV oder TABLE. GetElementById gibt das einzelne HtmlElement zurück, das der von Ihnen angegebenen eindeutigen ID entspricht. GetElementFromPoint gibt das HtmlElement zurück, das auf dem Bildschirm unter den angegebenen Koordinaten des Mauszeigers angezeigt wird.

Sie können auch die Forms-Auflistung und die Images-Auflistung verwenden, um die Elemente zu durchlaufen, die Formulare für Benutzereingaben bzw. Grafiken darstellen.

HtmlDocument basiert auf den nicht verwalteten Schnittstellen, die durch das 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 HtmlDocument verfügbar gemacht. Auf alle anderen Eigenschaften und Methoden können Sie direkt unter Verwendung der DomDocument-Eigenschaft zugreifen, die Sie in den Zeiger der gewünschten nicht verwalteten Schnittstelle umwandeln können.

Ein HTML-Dokument kann Frames enthalten. Dabei handelt es sich um unterschiedliche Fenster innerhalb des WebBrowser-Steuerelements. Für jeden Frame wird eine eigene HTML-Seite angezeigt. Die Frames-Auflistung ist außerhalb der Window-Eigenschaft verfügbar. Sie können auch die Window-Eigenschaft verwenden, um die Größe der angezeigten Seite zu verändern, einen Bildlauf im Dokument durchzuführen oder um dem Benutzer Warnmeldungen und Eingabeaufforderungen anzuzeigen.

HtmlDocument macht die am häufigsten auftretenden Ereignisse verfügbar, deren Behandlung Sie beim Hosten von HTML-Seiten erwarten. Für Ereignisse, die nicht direkt durch die Schnittstelle verfügbar gemacht wurden, können Sie mit AttachEventHandler einen Handler für das Ereignis hinzufügen.

HTML-Dateien können SCRIPT-Tags enthalten, die Code kapseln, der in einer der Active Scripting-Sprachen geschrieben wurde, beispielsweise JScript oder VBScript. Die InvokeScript-Methode sorgt für die Ausführung von Eigenschaften und Methoden, die in einem SCRIPT-Tag definiert sind.

d9bt3dad.alert_note(de-de,VS.90).gifHinweis:

Die meisten Eigenschaften, Methoden und Ereignisse in HtmlDocument haben weiterhin denselben Namen, den sie im nicht verwalteten DOM aufweisen. Einige wurden aus Gründen der Konsistenz mit .NET Framework geändert.

Im folgenden Codebeispiel werden Daten aus der Datenbank Northwind verwendet, um mithilfe von CreateElement eine HTML TABLE dynamisch zu erstellen. Die AppendChild-Methode wird ebenfalls verwendet. Zunächst werden damit Zeilen (TR-Elemente) Zellen (TD-Elemente) hinzugefügt, anschließend werden der Tabelle Zeilen hinzugefügt und schließlich wird die Tabelle an das Ende des aktuellen Dokuments angefügt. Für dieses Codebeispiel ist es erforderlich, dass die Anwendung ein WebBrowser-Steuerelement mit dem Namen WebBrowser1 aufweist.

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);
            }
        }
    }
}


System.Object
  System.Windows.Forms.HtmlDocument
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.