HtmlDocument 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供对 WebBrowser 控件承载的 HTML 文档的顶级编程访问。
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- 继承
-
HtmlDocument
示例
下面的代码示例使用 Northwind 数据库中的数据来动态使用 HTML TABLE
CreateElement。 AppendChild该方法还用于将单元格 (TD
元素) 添加到行 (TR
元素) ,然后将行添加到表中,最后将表追加到当前文档的末尾。 The code example requires that your application has a WebBrowser control named 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) 。 通过控件的属性获取实例HtmlDocumentDocument。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 属性为具有用户输入焦点的 HTML 页面上的元素提供 HtmlElement 该元素。 HTML 页中的所有元素都可以具有名称;集合 All 提供对每个 HtmlElement 使用其名称作为索引的访问。 GetElementsByTagName 将返回 HtmlElementCollection 具有给定 HTML 标记名称的所有 HtmlElement 对象,例如 DIV
或 TABLE
。 GetElementById 将返回与提供的唯一 ID 对应的单个 HtmlElement ID。 GetElementFromPoint 将返回 HtmlElement 可在提供的鼠标指针坐标处在屏幕上找到的项。
还可以使用 Forms 和 Images 集合循环访问分别表示用户输入表单和图形的元素。
HtmlDocument基于 Internet Explorer 的 DHTML DOM 实现的非托管接口:IHTMLDocument
、IHTMLDocument2
、和IHTMLDocument3``IHTMLDocument4
。 仅公开这些非托管接口 HtmlDocument上最常用的属性和方法。 可以使用属性直接 DomDocument 访问所有其他属性和方法,该属性可以强制转换为所需的非托管接口指针。
HTML 文档可能包含框架,这些框架是控件内部 WebBrowser 的不同窗口。 每个框架显示其自己的 HTML 页面。 该 Frames 集合通过 Window 属性提供。 还可以使用 Window 该属性调整所显示页面的大小、滚动文档或向用户显示警报和提示。
HtmlDocument 公开托管 HTML 页面时要处理的最常见事件。 对于接口未直接公开的事件,可以使用 为事件 AttachEventHandler添加处理程序。
HTML 文件可能包含SCRIPT
封装以活动脚本语言之一编写的代码的标记,例如JScript或 VBScript。 该方法 InvokeScript 用于执行标记中 SCRIPT
定义的属性和方法。
备注
虽然大多数属性、方法和事件都与非托管 DOM 上的名称相同,但一些属性、方法和事件HtmlDocument已更改,以便与.NET Framework保持一致。
属性
ActiveElement |
提供当前具有用户输入焦点的 HtmlElement。 |
ActiveLinkColor |
获取或设置超链接被用户单击后的 Color。 |
All |
获取 HtmlElementCollection 的实例,该实例存储文档的所有 HtmlElement 对象。 |
BackColor |
获取或设置 HTML 文档的背景色。 |
Body |
获取 |
Cookie |
获取或设置与此文档关联的 HTTP Cookie。 |
DefaultEncoding |
获取默认情况下为当前文档使用的编码。 |
Domain |
获取或设置字符串,描述用于安全目的的此文档的域。 |
DomDocument |
获取此 HtmlDocument 的非托管接口指针。 |
Encoding |
获取或设置此文档的字符编码。 |
Focused |
获取一个值,该值指示文档是否具有用户输入焦点。 |
ForeColor |
获取或设置文档的文本颜色。 |
Forms |
获取文档中所有 |
Images |
获取文档中所有图像标记的集合。 |
LinkColor |
获取或设置超链接的颜色。 |
Links |
获取此 HTML 文档中所有超链接的列表。 |
RightToLeft |
获取或设置当前文档中文本的方向。 |
Title |
获取或设置当前 HTML 文档中 |
Url |
获取描述此文档位置的 URL。 |
VisitedLinkColor |
获取或设置用户已经访问的链接(指向 HTML 页)的颜色。 |
Window |
获取与此文档关联的 HtmlWindow。 |
方法
AttachEventHandler(String, EventHandler) |
为已命名的 HTML DOM 事件添加事件处理程序。 |
CreateElement(String) |
新建一个指定 HTML 标记类型的 |
DetachEventHandler(String, EventHandler) |
从 HTML DOM 上的命名事件中移除事件处理程序。 |
Equals(Object) |
测试对象是否与当前对象相等。 |
ExecCommand(String, Boolean, Object) |
对文档执行指定的命令。 |
Focus() |
在当前文档上设置用户输入焦点。 |
GetElementById(String) |
将元素的 |
GetElementFromPoint(Point) |
检索位于指定工作区坐标位置的 HTML 元素。 |
GetElementsByTagName(String) |
检索具有指定 HTML 标记的元素集合。 |
GetHashCode() |
检索此对象的哈希代码。 |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
InvokeScript(String) |
执行在 HTML 页面中定义的活动脚本函数。 |
InvokeScript(String, Object[]) |
执行在 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 |
当向其他网页的导航被中断时发生。 |