HtmlDocument Klas

Definitie

Biedt programmatische toegang op het hoogste niveau tot een HTML-document dat wordt gehost door het WebBrowser besturingselement.

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
Overname
HtmlDocument

Voorbeelden

In het volgende codevoorbeeld worden gegevens uit de Northwind-database gebruikt om een HTML TABLE dynamisch te maken met behulp van CreateElement. De AppendChild methode wordt ook gebruikt, eerst om cellen (TD elementen) toe te voegen aan rijen (TR elementen), vervolgens rijen aan de tabel toe te voegen en ten slotte de tabel toe te voegen aan het einde van het huidige document. Het codevoorbeeld vereist dat uw toepassing een besturingselement met de WebBrowser naam WebBrowser1heeft. De code moet worden aangeroepen nadat een document is geladen.

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

Opmerkingen

HtmlDocument biedt een beheerde wrapper rond het documentobject van Internet Explorer, ook wel bekend als het HTML Document Object Model (DOM). U verkrijgt een exemplaar van HtmlDocument via de Document eigenschap van het WebBrowser besturingselement.

HTML-tags in een HTML-document kunnen in elkaar worden genest. HtmlDocument vertegenwoordigt dus een documentstructuur, waarvan de onderliggende exemplaren van de HtmlElement klasse zijn. In het volgende codevoorbeeld ziet u een eenvoudig HTML-bestand.

<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 dit voorbeeld HtmlDocument vertegenwoordigt u het hele document in de HTML tags. De BODY, DIVFORM en SPAN tags worden vertegenwoordigd door afzonderlijke HtmlElement objecten.

Er zijn verschillende manieren waarop u toegang hebt tot de elementen in deze structuur. Gebruik de Body eigenschap om toegang te krijgen tot de BODY tag en alle onderliggende items. De ActiveElement eigenschap geeft u het HtmlElement voor het element op een HTML-pagina met de focus op gebruikersinvoer. Alle elementen in een HTML-pagina kunnen een naam hebben; de All verzameling biedt toegang tot elk HtmlElement met behulp van de naam als een index. GetElementsByTagName retourneert een HtmlElementCollection van alle HtmlElement objecten met een bepaalde HTML-tagnaam, zoals DIV of TABLE. GetElementById retourneert de enige HtmlElement die overeenkomt met de unieke id die u opgeeft. GetElementFromPoint retourneert de HtmlElement die u op het scherm kunt vinden op de opgegeven coördinaten van de muis aanwijzer.

U kunt de Forms en Images verzameling ook gebruiken om te herhalen door elementen die respectievelijk gebruikersinvoerformulieren en afbeeldingen vertegenwoordigen.

HtmlDocument is gebaseerd op de niet-beheerde interfaces die zijn geïmplementeerd door DHTML DOM van Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3 en IHTMLDocument4. Alleen de meest gebruikte eigenschappen en methoden op deze onbeheerde interfaces worden weergegeven door HtmlDocument. U kunt alle andere eigenschappen en methoden rechtstreeks openen met behulp van de DomDocument eigenschap, die u kunt casten naar de gewenste onbeheerde interfacepointer.

Een HTML-document kan frames bevatten, die verschillende vensters in het WebBrowser besturingselement zijn. Elk frame geeft een eigen HTML-pagina weer. De Frames verzameling is beschikbaar via de Window eigenschap. U kunt de eigenschap ook gebruiken om het Window formaat van de weergegeven pagina te wijzigen, door het document te schuiven of waarschuwingen en aanwijzingen voor de gebruiker weer te geven.

HtmlDocument toont de meest voorkomende gebeurtenissen die u verwacht te verwerken bij het hosten van HTML-pagina's. Voor gebeurtenissen die niet rechtstreeks door de interface worden weergegeven, kunt u een handler voor de gebeurtenis toevoegen met behulp van AttachEventHandler.

HTML-bestanden kunnen tags bevatten SCRIPT die code inkapselen die zijn geschreven in een van de actieve scripttalen, zoals JScript of VBScript. De InvokeScript methode biedt de uitvoering van eigenschappen en methoden die zijn gedefinieerd in een SCRIPT tag.

Note

Hoewel de meeste eigenschappen, methoden en gebeurtenissen op HtmlDocument dezelfde namen hebben behouden als op de onbeheerde DOM, zijn sommige gewijzigd voor consistentie met het .NET Framework.

Eigenschappen

Name Description
ActiveElement

Biedt de HtmlElement focus die momenteel gebruikersinvoer heeft.

ActiveLinkColor

Hiermee haalt u de Color hyperlink op of stelt u deze in wanneer erop wordt geklikt door een gebruiker.

All

Hiermee wordt een exemplaar opgehaald van HtmlElementCollection, waarin alle HtmlElement objecten voor het document worden opgeslagen.

BackColor

Hiermee haalt u de achtergrondkleur van het HTML-document op of stelt u deze in.

Body

Haalt de HtmlElementBODY tag op.

Cookie

Hiermee haalt u de HTTP-cookies op die aan dit document zijn gekoppeld.

DefaultEncoding

Hiermee haalt u de codering op die standaard wordt gebruikt voor het huidige document.

Domain

Hiermee haalt u de tekenreeks op die het domein van dit document beschrijft voor beveiligingsdoeleinden.

DomDocument

Hiermee haalt u de onbeheerde interfacepointer hiervoor HtmlDocumentop.

Encoding

Hiermee haalt u de tekencodering voor dit document op of stelt u deze in.

Focused

Hiermee wordt een waarde opgehaald die aangeeft of het document de focus heeft op gebruikersinvoer.

ForeColor

Hiermee haalt u de tekstkleur voor het document op of stelt u deze in.

Forms

Hiermee haalt u een verzameling van <FORM> alle elementen in het document op.

Images

Hiermee haalt u een verzameling van alle afbeeldingstags in het document op.

LinkColor

Hiermee haalt u de kleur van hyperlinks op of stelt u deze in.

Links

Hiermee haalt u een lijst op van alle hyperlinks in dit HTML-document.

RightToLeft

Hiermee haalt u de tekstrichting op in het huidige document of stelt u deze in.

Title

Hiermee wordt de tekstwaarde van de <TITLE> tag opgehaald of ingesteld in het huidige HTML-document.

Url

Hiermee haalt u de URL op waarin de locatie van dit document wordt beschreven.

VisitedLinkColor

Hiermee wordt de kleur van koppelingen naar HTML-pagina's die de gebruiker al heeft bezocht, ophaalt of ingesteld.

Window

Hiermee haalt u de HtmlWindow gekoppelde aan dit document op.

Methoden

Name Description
AttachEventHandler(String, EventHandler)

Hiermee voegt u een gebeurtenis-handler toe voor de benoemde HTML DOM-gebeurtenis.

CreateElement(String)

Hiermee maakt u een nieuw HtmlElement van het opgegeven HTML-tagtype.

DetachEventHandler(String, EventHandler)

Hiermee verwijdert u een gebeurtenis-handler uit een benoemde gebeurtenis in de HTML DOM.

Equals(Object)

Test het object op gelijkheid tegen het huidige object.

ExecCommand(String, Boolean, Object)

Hiermee voert u de opgegeven opdracht uit op het document.

Focus()

Hiermee stelt u de focus op gebruikersinvoer in op het huidige document.

GetElementById(String)

Hiermee haalt u één HtmlElement op met behulp van het kenmerk van ID het element als zoeksleutel.

GetElementFromPoint(Point)

Hiermee wordt het HTML-element opgehaald dat zich op de opgegeven clientcoördinaten bevindt.

GetElementsByTagName(String)

Haal een verzameling elementen op met de opgegeven HTML-tag.

GetHashCode()

Haalt de hashcode voor dit object op.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
InvokeScript(String, Object[])

Hiermee wordt een actieve scriptfunctie uitgevoerd die is gedefinieerd in een HTML-pagina.

InvokeScript(String)

Hiermee wordt een actieve scriptfunctie uitgevoerd die is gedefinieerd in een HTML-pagina.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
OpenNew(Boolean)

Hiermee krijgt u een nieuw HtmlDocument te gebruiken methode Write(String) .

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
Write(String)

Hiermee schrijft u een nieuwe HTML-pagina.

Operators

Name Description
Equality(HtmlDocument, HtmlDocument)

Retourneert een waarde die aangeeft of de opgegeven HtmlDocument exemplaren dezelfde waarde vertegenwoordigen.

Inequality(HtmlDocument, HtmlDocument)

Retourneert een waarde die aangeeft of de opgegeven HtmlDocument exemplaren niet dezelfde waarde vertegenwoordigen.

gebeurtenis

Name Description
Click

Treedt op wanneer de gebruiker ergens in het document klikt.

ContextMenuShowing

Treedt op wanneer de gebruiker vraagt om het contextmenu van het document weer te geven.

Focusing

Treedt op voordat de focus wordt gegeven aan het document.

LosingFocus

Treedt op wanneer de focus een besturingselement verlaat.

MouseDown

Treedt op wanneer de gebruiker op de linkermuisknop klikt.

MouseLeave

Treedt op wanneer de muis niet meer over het document beweegt.

MouseMove

Treedt op wanneer de muis over het document wordt verplaatst.

MouseOver

Treedt op wanneer de muis over het document wordt verplaatst.

MouseUp

Treedt op wanneer de gebruiker de linkermuisknop loslaat.

Stop

Treedt op wanneer de navigatie naar een andere webpagina wordt gestopt.

Van toepassing op

Zie ook