HtmlDocument Класс

Определение

Обеспечивает программный доступ верхнего уровня к HTML-документу, который размещается в элементе управления WebBrowser.

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
Наследование
HtmlDocument

Примеры

В следующем примере кода данные из базы данных Northwind используются для динамического HTML TABLE CreateElementсоздания. Метод AppendChild также используется для добавления ячеек (TD элементов) в строки (TR элементы), а затем для добавления строк в таблицу и, наконец, для добавления таблицы в конец текущего документа. В примере кода требуется, чтобы в приложении был WebBrowser элемент управления с именем WebBrowser1. Код должен вызываться после загрузки документа.

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

Комментарии

HtmlDocument предоставляет управляемую оболочку вокруг объекта документа Internet Explorer, также известного как модель DOM. Вы получаете экземпляр HtmlDocument с помощью Document свойства WebBrowser элемента управления.

Теги HTML внутри HTML-документа могут быть вложены друг в друга. HtmlDocument таким образом представляет дерево документов, дочерние элементы которого являются экземплярами HtmlElement класса. В следующем примере кода показан простой 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>  

В этом примере HtmlDocument представляет весь документ внутри HTML тегов. Теги BODY``DIV``FORM и SPAN теги представлены отдельными HtmlElement объектами.

Доступ к элементам в этом дереве можно получить несколькими способами. Body Используйте свойство для доступа к тегу BODY и всем его дочерним элементам. Это ActiveElement свойство предоставляет элемент HtmlElement на HTML-странице с фокусом ввода пользователем. Все элементы на HTML-странице могут иметь имя; All Коллекция предоставляет доступ к каждой из них HtmlElement , используя ее имя в качестве индекса. GetElementsByTagName возвращает все HtmlElementCollection HtmlElement объекты с заданным именем HTML-тега, например DIV или TABLE. GetElementById возвращает один, HtmlElement соответствующий уникальному идентификатору, который вы указали. GetElementFromPoint возвращает значение HtmlElement , которое можно найти на экране по предоставленным координатам указателя мыши.

Вы также можете использовать и Images коллекцию Forms для итерации элементов, представляющих пользовательские формы ввода и графику соответственно.

HtmlDocumentоснован на неуправляемых интерфейсах, реализованных моделью DHTML DOM Internet Explorer: IHTMLDocument, , IHTMLDocument2``IHTMLDocument3и IHTMLDocument4. В этих неуправляемых интерфейсах предоставляются HtmlDocumentтолько наиболее часто используемые свойства и методы. Доступ ко всем остальным свойствам и методам можно получить напрямую с помощью DomDocument свойства, который можно привести к нужному неуправляемому указателю интерфейса.

HTML-документ может содержать кадры, которые находятся в разных окнах WebBrowser элемента управления. Каждый кадр отображает собственную HTML-страницу. Коллекция Frames доступна через Window свойство. Вы также можете использовать Window свойство для изменения размера отображаемой страницы, прокрутки документа или отображения оповещений и запросов для пользователя.

HtmlDocument предоставляет наиболее распространенные события, которые будут обрабатываться при размещении HTML-страниц. Для событий, не предоставляемых интерфейсом напрямую, можно добавить обработчик для события с помощью AttachEventHandler.

HTML-файлы могут содержать SCRIPT теги, которые инкапсулируют код, написанный на одном из языков активных скриптов, таких как JScript или VBScript. Этот InvokeScript метод обеспечивает выполнение свойств и методов, определенных в теге SCRIPT .

Примечание

Хотя большинство свойств, методов и событий HtmlDocument сохраняют те же имена, что и в неуправляемой модели DOM, некоторые из них были изменены для согласованности с платформа .NET Framework.

Свойства

ActiveElement

Предоставляет объект HtmlElement, который в текущий момент находится в фокусе пользовательского ввода.

ActiveLinkColor

Получает или задает объект Color гиперссылки по щелчку.

All

Получает экземпляр класса HtmlElementCollection, который хранит все объекты HtmlElement для документа.

BackColor

Возвращает или задает цвет фона для HTML-документа.

Body

Возвращает объект HtmlElement для тега BODY.

Cookie

Возвращает или задает файлы cookie HTTP, связанные с данным документом.

DefaultEncoding

Получает кодировку, используемую по умолчанию для текущего документа.

Domain

Возвращает или задает строку, описывающую домен этого документа в целях безопасности.

DomDocument

Получает указатель на неуправляемый интерфейс для данного объекта HtmlDocument.

Encoding

Возвращает или задает кодировку для этого документа.

Focused

Получает значение, показывающее, имеет ли документ фокус ввода пользователя.

ForeColor

Возвращает или задает цвет текста для документа.

Forms

Возвращает коллекцию всех <элементов FORM> в документе.

Images

Получает коллекцию всех тегов изображений в документе.

LinkColor

Возвращает или задает цвет гиперссылок.

Links

Возвращает список всех гиперссылок в этом HTML-документе.

RightToLeft

Возвращает или задает направление текста в текущем документе.

Title

Возвращает или задает текстовое значение тега <TITLE> в текущем HTML-документе.

Url

Получает URL-адрес, указывающий расположение этого документа.

VisitedLinkColor

Получает или задает цвет ссылок на HTML-страницы, которые пользователь уже посетил.

Window

Получает объект HtmlWindow, связанный с данным документом.

Методы

AttachEventHandler(String, EventHandler)

Добавляет обработчик событий для именованного события HTML DOM.

CreateElement(String)

Создает новый объект HtmlElement указанного типа HTML-тега.

DetachEventHandler(String, EventHandler)

Удаляет обработчик событий из именованного события модели DOM HTML.

Equals(Object)

Тестирует объект на равенство с текущим объектом.

ExecCommand(String, Boolean, Object)

Выполняет заданную команду в отношении документа.

Focus()

Помещает фокус ввода на текущий документ.

GetElementById(String)

Извлекает единственный элемент HtmlElement с использованием атрибута ID этого элемента в качестве ключа поиска.

GetElementFromPoint(Point)

Возвращает HTML-элемент, расположенный по указанным клиентским координатам.

GetElementsByTagName(String)

Возвращает коллекцию элементов с указанным HTML-тегом.

GetHashCode()

Возвращает хэш-код для данного объекта.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InvokeScript(String)

Выполняет функцию Active Scripting, определенную на HTML-странице.

InvokeScript(String, Object[])

Выполняет функцию Active Scripting, определенную на HTML-странице.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
OpenNew(Boolean)

Получает новый объект HtmlDocument для использования в методе Write(String).

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
Write(String)

Записывает новую HTML-страницу.

Операторы

Equality(HtmlDocument, HtmlDocument)

Возвращает значение, указывающее, представляют ли заданные экземпляры HtmlDocument одно и то же значение.

Inequality(HtmlDocument, HtmlDocument)

Возвращает значение, указывающее, представляют ли заданные экземпляры HtmlDocument разные значения.

События

Click

Происходит при щелчке документа пользователем.

ContextMenuShowing

Происходит, когда пользователь запрашивает отображение контекстного меню документа.

Focusing

Происходит перед установкой фокуса на документе.

LosingFocus

Происходит при переходе фокуса с элемента управления.

MouseDown

Происходит при нажатии пользователем левой кнопки мыши.

MouseLeave

Происходит после того, как указатель мыши покинул область документа.

MouseMove

Происходит при перемещении указателя мыши по документу.

MouseOver

Происходит при перемещении указателя мыши по документу.

MouseUp

Происходит при отпускании пользователем левой кнопки мыши.

Stop

Происходит при приостановке перехода на другую веб-страницу.

Применяется к

См. также раздел