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, также известную как МОДЕЛЬ HTML-документа (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 который можно найти на экране по указанным координатам указателя мыши.
Вы также можете использовать коллекцию Forms и Images для перебора элементов, представляющих формы ввода пользователем и графику соответственно.
HtmlDocument основан на неуправляемых интерфейсах, реализованных моделью DOM DHTML 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 тега |
Cookie |
Возвращает или задает файлы cookie HTTP, связанные с данным документом. |
DefaultEncoding |
Получает кодировку, используемую по умолчанию для текущего документа. |
Domain |
Возвращает или задает строку, описывающую домен этого документа в целях безопасности. |
DomDocument |
Получает указатель на неуправляемый интерфейс для данного объекта HtmlDocument. |
Encoding |
Возвращает или задает кодировку для этого документа. |
Focused |
Получает значение, показывающее, имеет ли документ фокус ввода пользователя. |
ForeColor |
Возвращает или задает цвет текста для документа. |
Forms |
Возвращает коллекцию всех |
Images |
Получает коллекцию всех тегов изображений в документе. |
LinkColor |
Возвращает или задает цвет гиперссылок. |
Links |
Возвращает список всех гиперссылок в этом HTML-документе. |
RightToLeft |
Возвращает или задает направление текста в текущем документе. |
Title |
Возвращает или задает текстовое значение тега |
Url |
Получает URL-адрес, указывающий расположение этого документа. |
VisitedLinkColor |
Получает или задает цвет ссылок на HTML-страницы, которые пользователь уже посетил. |
Window |
Получает объект HtmlWindow, связанный с данным документом. |
Методы
AttachEventHandler(String, EventHandler) |
Добавляет обработчик событий для именованного события HTML DOM. |
CreateElement(String) |
Создает новый объект |
DetachEventHandler(String, EventHandler) |
Удаляет обработчик событий из именованного события модели DOM HTML. |
Equals(Object) |
Тестирует объект на равенство с текущим объектом. |
ExecCommand(String, Boolean, Object) |
Выполняет заданную команду в отношении документа. |
Focus() |
Помещает фокус ввода на текущий документ. |
GetElementById(String) |
Извлекает один объект HtmlElement , используя атрибут элемента |
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 |
Происходит при приостановке перехода на другую веб-страницу. |