Sdílet prostřednictvím


HtmlDocument Třída

Definice

Poskytuje programový přístup nejvyšší úrovně k dokumentu HTML hostovanému ovládacím WebBrowser prvek.

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
Dědičnost
HtmlDocument

Příklady

Následující příklad kódu používá data z databáze Northwind k dynamickému HTML TABLE vytvoření pomocí CreateElement. Používá se AppendChild také metoda, která nejprve přidá buňky (TD elementy) do řádků (TR elementů), pak přidá řádky do tabulky a nakonec připojí tabulku na konec aktuálního dokumentu. Příklad kódu vyžaduje, aby vaše aplikace má ovládací prvek WebBrowser s názvem WebBrowser1. Kód by se měl volat po načtení dokumentu.

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

Poznámky

HtmlDocument poskytuje spravovanou obálku kolem objektu dokumentu aplikace Internet Explorer, označovaného také jako MODEL DOM (Document Object Model). Instanci získáte HtmlDocument prostřednictvím Document vlastnosti WebBrowser ovládacího prvku.

Značky HTML uvnitř dokumentu HTML se dají vnořit mezi sebou. HtmlDocument představuje tak strom dokumentů, jehož podřízené položky jsou instancemi HtmlElement třídy. Následující příklad kódu ukazuje jednoduchý soubor HTML.

<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>  

V tomto příkladu HtmlDocument představuje celý dokument uvnitř HTML značek. Značky BODY, FORMDIVa SPAN jsou reprezentovány jednotlivými HtmlElement objekty.

Existuje několik způsobů, jak získat přístup k prvkům v tomto stromu. Vlastnost použijte Body pro přístup BODY ke značce a všem jejím podřízeným položkám. Vlastnost ActiveElement poskytuje HtmlElement pro prvek na stránce HTML, která má fokus vstupu uživatele. Všechny prvky v rámci html stránky mohou mít název; All kolekce poskytuje přístup ke každé z nich HtmlElement pomocí svého názvu jako indexu. GetElementsByTagName vrátí objekt HtmlElementCollection se všemi HtmlElement objekty s daným názvem značky HTML, například DIV nebo TABLE. GetElementById vrátí jeden odpovídající HtmlElement jedinečnému ID, které zadáte. GetElementFromPoint vrátí hodnotu HtmlElement , kterou lze najít na obrazovce v zadaných souřadnicích ukazatele myši.

Kolekci Forms a Images můžete také použít k iteraci prvků, které představují uživatelské vstupní formuláře a grafiku.

HtmlDocument je založen na nespravovaných rozhraních implementovaných internet explorerem DHTML DOM: IHTMLDocument, IHTMLDocument2, IHTMLDocument3a IHTMLDocument4. Pouze nejčastěji používané vlastnosti a metody na těchto nespravovaných rozhraních jsou vystaveny pomocí HtmlDocument. Ke všem ostatním vlastnostem a metodám můžete přistupovat přímo pomocí DomDocument vlastnosti, kterou můžete přetypovat na požadovaný nespravovaný ukazatel rozhraní.

Dokument HTML může obsahovat rámečky, což jsou různá okna uvnitř WebBrowser ovládacího prvku. Každý rámec zobrazí vlastní stránku HTML. Kolekce Frames je k dispozici prostřednictvím Window vlastnosti . Vlastnost můžete také použít Window ke změně velikosti zobrazené stránky, k posouvání dokumentu nebo k zobrazení upozornění a výzev pro uživatele.

HtmlDocument zveřejňuje nejběžnější události, které byste očekávali při hostování stránek HTML. Pro události, které nejsou vystaveny přímo rozhraním, můžete přidat obslužnou rutinu události pomocí AttachEventHandler.

Soubory HTML mohou obsahovat SCRIPT značky, které zapouzdřují kód napsaný v některém z jazyků aktivního skriptování, jako je JScript nebo VBScript. Metoda InvokeScript umožňuje provádění vlastností a metod definovaných ve značce SCRIPT .

Poznámka

Zatímco většina vlastností, metod a událostí v systému HtmlDocument si zachovala stejné názvy jako u nespravovaného modelu DOM, některé byly změněny kvůli konzistenci s rozhraním .NET Framework.

Vlastnosti

ActiveElement

Poskytuje aktuálně fokus HtmlElement uživatelského vstupu.

ActiveLinkColor

Získá nebo nastaví Color hypertextový odkaz při kliknutí uživatelem.

All

Získá instanci HtmlElementCollection, který ukládá všechny HtmlElement objekty pro dokument.

BackColor

Získá nebo nastaví barvu pozadí dokumentu HTML.

Body

Získá pro HtmlElementBODY značku.

Cookie

Získá nebo nastaví soubory cookie HTTP přidružené k tomuto dokumentu.

DefaultEncoding

Získá kódování použité ve výchozím nastavení pro aktuální dokument.

Domain

Získá nebo nastaví řetězec popisující doménu tohoto dokumentu pro účely zabezpečení.

DomDocument

Získá nespravovaný ukazatel rozhraní pro tento HtmlDocument.

Encoding

Získá nebo nastaví kódování znaků pro tento dokument.

Focused

Získá hodnotu označující, zda dokument má fokus vstupu uživatele.

ForeColor

Získá nebo nastaví barvu textu pro dokument.

Forms

Získá kolekci všech <FORM> prvků v dokumentu.

Images

Získá kolekci všech značek obrázků v dokumentu.

LinkColor

Získá nebo nastaví barvu hypertextových odkazů.

Links

Získá seznam všech hypertextových odkazů v tomto dokumentu HTML.

RightToLeft

Získá nebo nastaví směr textu v aktuálním dokumentu.

Title

Získá nebo nastaví text hodnotu značky <TITLE> v aktuálním dokumentu HTML.

Url

Získá adresu URL popisující umístění tohoto dokumentu.

VisitedLinkColor

Získá nebo nastaví barvu odkazů na stránky HTML, které uživatel již navštívil.

Window

Získá přidružený k HtmlWindow tomuto dokumentu.

Metody

AttachEventHandler(String, EventHandler)

Přidá obslužnou rutinu události pro pojmenovanou událost HTML DOM.

CreateElement(String)

Vytvoří nový HtmlElement ze zadaného typu značky HTML.

DetachEventHandler(String, EventHandler)

Odebere obslužnou rutinu události z pojmenované události na modelu HTML DOM.

Equals(Object)

Testuje rovnost objektu s aktuálním objektem.

ExecCommand(String, Boolean, Object)

Spustí zadaný příkaz proti dokumentu.

Focus()

Nastaví fokus vstupu uživatele na aktuální dokument.

GetElementById(String)

Načte jeden HtmlElement pomocí atributu elementu ID jako vyhledávacího klíče.

GetElementFromPoint(Point)

Načte element HTML umístěný v zadaných souřadnicích klienta.

GetElementsByTagName(String)

Načte kolekci prvků se zadanou značkou HTML.

GetHashCode()

Načte kód hash pro tento objekt.

GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
InvokeScript(String)

Spustí funkci aktivního skriptování definovanou na stránce HTML.

InvokeScript(String, Object[])

Spustí funkci aktivního skriptování definovanou na stránce HTML.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OpenNew(Boolean)

Získá nový HtmlDocument pro použití s metodou Write(String) .

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
Write(String)

Zapíše novou stránku HTML.

Operátory

Equality(HtmlDocument, HtmlDocument)

Vrátí hodnotu, která označuje, zda zadané HtmlDocument instance představují stejnou hodnotu.

Inequality(HtmlDocument, HtmlDocument)

Vrátí hodnotu, která označuje, zda zadané HtmlDocument instance nepředstavují stejnou hodnotu.

Událost

Click

Nastane, když uživatel klikne na libovolné místo v dokumentu.

ContextMenuShowing

Nastane, když uživatel požádá o zobrazení místní nabídky dokumentu.

Focusing

Nastane před tím, než se fokus přesune na dokument.

LosingFocus

Nastane, když fokus opouští ovládací prvek.

MouseDown

Nastane, když uživatel klikne na levé tlačítko myši.

MouseLeave

Nastane, když už myš na dokument nespadá myší.

MouseMove

Nastane při přesunutí myši nad dokument.

MouseOver

Nastane při přesunutí myši nad dokument.

MouseUp

Nastane, když uživatel uvolní levé tlačítko myši.

Stop

Nastane při zastavení navigace na jinou webovou stránku.

Platí pro

Viz také