HtmlDocument 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供对 WebBrowser 控件承载的 HTML 文档的顶级编程访问。
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- 继承
-
HtmlDocument
示例
下面的代码示例使用 Northwind 数据库中的数据使用 动态CreateElement创建 HTML TABLE
。
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) )提供托管包装。 通过 Document 控件的 属性获取 的WebBrowser实例HtmlDocument。
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 。
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
定义的属性和方法的执行。
注意
虽然 上的 HtmlDocument 大多数属性、方法和事件都与非托管 DOM 上的名称相同,但为了与 .NET Framework 保持一致,某些属性、方法和事件进行了更改。
属性
ActiveElement |
提供当前具有用户输入焦点的 HtmlElement。 |
ActiveLinkColor |
获取或设置超链接被用户单击后的 Color。 |
All |
获取 HtmlElementCollection 的实例,该实例存储文档的所有 HtmlElement 对象。 |
BackColor |
获取或设置 HTML 文档的背景色。 |
Body |
HtmlElement获取 标记的 |
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, Object[]) |
执行在 HTML 页面中定义的活动脚本函数。 |
InvokeScript(String) |
执行在 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 |
当向其他网页的导航被中断时发生。 |