HtmlDocument Klasa

Definicja

Zapewnia dostęp programowy najwyższego poziomu do dokumentu HTML hostowanego przez kontrolkę WebBrowser .

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

Przykłady

W poniższym przykładzie kodu dane z bazy danych Northwind są używane do dynamicznego HTML TABLE tworzenia obiektu przy użyciu polecenia CreateElement. Metoda AppendChild jest również używana, najpierw w celu dodania komórek (TD elementów) do wierszy (TR elementów), a następnie dodania wierszy do tabeli, a na koniec dołączenia tabeli na końcu bieżącego dokumentu. Przykładowy kod wymaga, aby aplikacja ma kontrolkę WebBrowser o nazwie WebBrowser1. Kod powinien być wywoływany po załadowaniu 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

Uwagi

HtmlDocument udostępnia zarządzaną otokę wokół obiektu dokumentu programu Internet Explorer, znanego również jako MODEL DOM (DOCUMENT Object Model). Wystąpienie klasy HtmlDocument można uzyskać za pomocą Document właściwości kontrolki WebBrowser .

Tagi HTML wewnątrz dokumentu HTML mogą być zagnieżdżone wewnątrz siebie. HtmlDocument w ten sposób reprezentuje drzewo dokumentów, którego elementy podrzędne są wystąpieniami HtmlElement klasy. Poniższy przykład kodu przedstawia prosty plik 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>  

W tym przykładzie HtmlDocument reprezentuje cały dokument wewnątrz tagów HTML . Tagi BODY, DIV``FORM i SPAN są reprezentowane przez poszczególne HtmlElement obiekty.

Istnieje kilka sposobów uzyskiwania dostępu do elementów w tym drzewie. Body Użyj właściwości , aby uzyskać dostęp do tagu BODY i wszystkich jego elementów podrzędnych. Właściwość ActiveElement udostępnia HtmlElement element dla elementu na stronie HTML, która ma fokus danych wejściowych użytkownika. Wszystkie elementy na stronie HTML mogą mieć nazwę; All kolekcja zapewnia dostęp do każdej HtmlElement z nich przy użyciu jej nazwy jako indeksu. GetElementsByTagName Polecenie zwróci wszystkie HtmlElementCollection HtmlElement obiekty o podanej nazwie tagu HTML, takiej jak DIV lub TABLE. GetElementById funkcja zwróci pojedynczy odpowiadający HtmlElement identyfikatorowi unikatowego, który podajesz. GetElementFromPoint funkcja zwróci HtmlElement wartość , którą można znaleźć na ekranie na podanych współrzędnych wskaźnika myszy.

Kolekcji Forms i Images można również używać do iterowania elementów reprezentujących odpowiednio formularze danych wejściowych i grafiki użytkownika.

HtmlDocument jest oparty na niezarządzanych interfejsach implementowanych przez dom DHTML programu Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3i IHTMLDocument4. Tylko najczęściej używane właściwości i metody w tych niezarządzanych interfejsach są udostępniane przez HtmlDocumentprogram . Dostęp do wszystkich innych właściwości i metod można uzyskać bezpośrednio przy użyciu DomDocument właściwości , którą można rzutować do żądanego niezarządzanego wskaźnika interfejsu.

Dokument HTML może zawierać ramki, które są różnymi oknami wewnątrz kontrolki WebBrowser . Każda ramka wyświetla własną stronę HTML. Kolekcja Frames jest dostępna za pośrednictwem Window właściwości . Możesz również użyć Window właściwości , aby zmienić rozmiar wyświetlanej strony, przewinąć dokument lub wyświetlić alerty i monity do użytkownika.

HtmlDocument Uwidacznia najbardziej typowe zdarzenia, które powinny być obsługiwane podczas hostowania stron HTML. W przypadku zdarzeń, które nie są widoczne bezpośrednio przez interfejs, można dodać procedurę obsługi dla zdarzenia przy użyciu polecenia AttachEventHandler.

Pliki HTML mogą zawierać SCRIPT tagi, które hermetyzują kod napisany w jednym z aktywnych języków skryptów, takich jak JScript lub VBScript. Metoda InvokeScript zapewnia wykonywanie właściwości i metod zdefiniowanych w tagu SCRIPT .

Uwaga

Chociaż większość właściwości, metod i zdarzeń w systemie HtmlDocument zachowała takie same nazwy, jak w niezarządzanych modelu DOM, niektóre zostały zmienione w celu zachowania spójności z .NET Framework.

Właściwości

ActiveElement

HtmlElement Zapewnia, który aktualnie ma fokus danych wejściowych użytkownika.

ActiveLinkColor

Pobiera lub ustawia Color hiperłącze po kliknięciu przez użytkownika.

All

Pobiera wystąpienie obiektu HtmlElementCollection, które przechowuje wszystkie HtmlElement obiekty dla dokumentu.

BackColor

Pobiera lub ustawia kolor tła dokumentu HTML.

Body

Pobiera element HtmlElement dla tagu BODY .

Cookie

Pobiera lub ustawia pliki cookie HTTP skojarzone z tym dokumentem.

DefaultEncoding

Pobiera kodowanie używane domyślnie dla bieżącego dokumentu.

Domain

Pobiera lub ustawia ciąg opisujący domenę tego dokumentu na potrzeby zabezpieczeń.

DomDocument

Pobiera niezarządzany wskaźnik interfejsu dla tego HtmlDocumentpolecenia .

Encoding

Pobiera lub ustawia kodowanie znaków dla tego dokumentu.

Focused

Pobiera wartość wskazującą, czy dokument ma fokus wejściowy użytkownika.

ForeColor

Pobiera lub ustawia kolor tekstu dokumentu.

Forms

Pobiera kolekcję wszystkich <elementów FORMULARZA> w dokumencie.

Images

Pobiera kolekcję wszystkich tagów obrazów w dokumencie.

LinkColor

Pobiera lub ustawia kolor hiperlinków.

Links

Pobiera listę wszystkich hiperlinków w tym dokumencie HTML.

RightToLeft

Pobiera lub ustawia kierunek tekstu w bieżącym dokumencie.

Title

Pobiera lub ustawia wartość tekstowa tagu <TITLE> w bieżącym dokumencie HTML.

Url

Pobiera adres URL opisujący lokalizację tego dokumentu.

VisitedLinkColor

Pobiera lub ustawia kolor linków do stron HTML, które użytkownik już odwiedził.

Window

HtmlWindow Pobiera skojarzony z tym dokumentem.

Metody

AttachEventHandler(String, EventHandler)

Dodaje program obsługi zdarzeń dla nazwanego zdarzenia DOM HTML.

CreateElement(String)

Tworzy nowy HtmlElement określony typ tagu HTML.

DetachEventHandler(String, EventHandler)

Usuwa program obsługi zdarzeń z nazwanego zdarzenia w modelu DOM HTML.

Equals(Object)

Sprawdza obiekt pod kątem równości względem bieżącego obiektu.

ExecCommand(String, Boolean, Object)

Wykonuje określone polecenie względem dokumentu.

Focus()

Ustawia fokus danych wejściowych użytkownika na bieżącym dokumencie.

GetElementById(String)

Pobiera jeden HtmlElement przy użyciu atrybutu ID elementu jako klucza wyszukiwania.

GetElementFromPoint(Point)

Pobiera element HTML znajdujący się na określonych współrzędnych klienta.

GetElementsByTagName(String)

Pobierz kolekcję elementów z określonym tagiem HTML.

GetHashCode()

Pobiera kod skrótu dla tego obiektu.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InvokeScript(String)

Wykonuje funkcję Active Scripting zdefiniowaną na stronie HTML.

InvokeScript(String, Object[])

Wykonuje funkcję Active Scripting zdefiniowaną na stronie HTML.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OpenNew(Boolean)

Pobiera nowy HtmlDocument element do użycia z Write(String) metodą .

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
Write(String)

Zapisuje nową stronę HTML.

Operatory

Equality(HtmlDocument, HtmlDocument)

Zwraca wartość wskazującą, czy określone HtmlDocument wystąpienia reprezentują tę samą wartość.

Inequality(HtmlDocument, HtmlDocument)

Zwraca wartość wskazującą, czy określone HtmlDocument wystąpienia nie reprezentują tej samej wartości.

Zdarzenia

Click

Występuje, gdy użytkownik kliknie w dowolnym miejscu dokumentu.

ContextMenuShowing

Występuje, gdy użytkownik żąda wyświetlenia menu kontekstowego dokumentu.

Focusing

Występuje przed udostępnieniem dokumentu fokusu.

LosingFocus

Występuje, gdy fokus opuszcza kontrolkę.

MouseDown

Występuje, gdy użytkownik kliknie lewy przycisk myszy.

MouseLeave

Występuje, gdy kursor myszy nie jest już umieszczany na dokumencie.

MouseMove

Występuje po przeniesieniu myszy nad dokumentem.

MouseOver

Występuje po przeniesieniu myszy nad dokumentem.

MouseUp

Występuje, gdy użytkownik zwolni lewy przycisk myszy.

Stop

Występuje po zatrzymaniu nawigacji na innej stronie sieci Web.

Dotyczy

Zobacz też