Udostępnij za pośrednictwem


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

Poniższy przykład kodu używa danych z bazy danych Northwind do dynamicznego HTML TABLE tworzenia przy użyciu polecenia CreateElement. Metoda AppendChild jest również używana, najpierw do dodawania komórek (TD elementów) do wierszy (TR elementów), a następnie do dodawania wierszy do tabeli, a na koniec dołączania 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 (HTML Document Object Model). Wystąpienie kontrolki można uzyskać HtmlDocument za pomocą Document właściwości kontrolki WebBrowser .

Tagi HTML wewnątrz dokumentu HTML można zagnieżdżać wewnątrz siebie. HtmlDocument w ten sposób reprezentuje drzewo dokumentów, którego elementy podrzędne HtmlElement są wystąpieniami 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 HTML tagów. Tagi BODY, DIVFORM i SPAN są reprezentowane przez poszczególne HtmlElement obiekty.

Istnieje kilka sposobów uzyskiwania dostępu do elementów w tym drzewie. Użyj właściwości , Body 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 wejściowy użytkownika. Wszystkie elementy na stronie HTML mogą mieć nazwę; All kolekcja zapewnia dostęp do każdego HtmlElement z nich przy użyciu jego nazwy jako indeksu. GetElementsByTagName HtmlElementCollection zwróci wszystkie HtmlElement obiekty o podanej nazwie tagu HTML, na przykład DIV lub TABLE. GetElementById zwróci pojedynczy HtmlElement odpowiadający mu unikatowy identyfikator, który podajesz. GetElementFromPoint zwróci element HtmlElement , który można znaleźć na ekranie na podanych współrzędnych wskaźnika myszy.

Można również użyć kolekcji Forms i Images , aby iterować elementy reprezentujące odpowiednio formularze wejściowe i grafiki użytkownika.

HtmlDocumentjest oparty na niezarządzanych interfejsach implementowanych przez dom DHTML programu Internet Explorer: IHTMLDocument, , IHTMLDocument2IHTMLDocument3i IHTMLDocument4. Tylko najczęściej używane właściwości i metody w tych niezarządzanych interfejsach są uwidocznione przez program HtmlDocument. 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 języków aktywnych skryptów, takich jak JScript lub VBScript. Metoda InvokeScript zapewnia wykonywanie właściwości i metod zdefiniowanych w tagu SCRIPT .

Uwaga

Podczas gdy większość właściwości, metod i zdarzeń w systemie HtmlDocument zachowała takie same nazwy, jak w niezarządzanych elementach DOM, niektóre zostały zmienione pod kątem spójności z programem .NET Framework.

Właściwości

ActiveElement

Udostępnia aktualnie HtmlElement fokus danych wejściowych użytkownika.

ActiveLinkColor

Pobiera lub ustawia Color hiperlink 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

HtmlElement Pobiera tag dla taguBODY.

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 <FORM> elementów 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 procedurę 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 przy HtmlElement użyciu atrybutu elementu ID 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 bieżące wystąpienie.

(Odziedziczone po Object)
InvokeScript(String, Object[])

Wykonuje funkcję Active Scripting zdefiniowaną na stronie HTML.

InvokeScript(String)

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 dowolne miejsce w dokumencie.

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ż