分享

HtmlDocument Class (System.Windows.Forms) | Microsoft Docs

 行走在理想边缘 2019-03-25

HtmlDocument Class

定义

  • Assembly:
  • System.Windows.Forms.dll

提供对 WebBrowser 控件承载的 HTML 文档的顶级编程访问。

C#
public sealed class HtmlDocument

示例

下面的代码示例使用 Northwind 数据库中的数据来创建HTML TABLE动态使用CreateElementAppendChild方法还使用,首先要添加的单元格 (TD元素) 到行 (TR元素),然后将行添加到表中,最后,将表追加到当前文档的末尾。 代码示例要求您的应用程序具有WebBrowser名为控件WebBrowser1。 加载文档之后,应调用代码。

C#
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);
            }
        }
    }
}

注解

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标记。 BODYDIVFORMSPAN标记由个人HtmlElement对象。

有几种方法可以访问此树中的元素。 使用Body属性来访问BODY标记和所有子项。 ActiveElement属性可让您HtmlElement上具有用户输入的焦点的 HTML 页面元素。 HTML 页中的所有元素可以都有一个名称;All集合提供对每个访问HtmlElement使用其名称作为索引。 GetElementsByTagName 将返回HtmlElementCollection的所有HtmlElement对象使用给定的 HTML 标记名称,如DIVTABLEGetElementById 将返回单个HtmlElement对应于你提供的唯一 ID。 GetElementFromPoint 将返回HtmlElement可提供的鼠标指针坐标在屏幕上找到。

此外可以使用FormsImages集合进行循环访问元素表示用户分别输入窗体和图形。

HtmlDocument 基于由 Internet Explorer 的 DHTML DOM 实现的非托管接口: IHTMLDocumentIHTMLDocument2IHTMLDocument3,和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

获取 BODY 标记的 HtmlElement

Cookie

获取或设置与此文档关联的 HTTP Cookie。

DefaultEncoding

获取默认情况下为当前文档使用的编码。

Domain

获取或设置字符串,描述用于安全目的的此文档的域。

DomDocument

获取此 HtmlDocument 的非托管接口指针。

Encoding

获取或设置此文档的字符编码。

Focused

获取一个值,该值指示文档是否具有用户输入焦点。

ForeColor

获取或设置文档的文本颜色。

Forms

获取文档中所有 <FORM> 元素的集合。

Images

获取文档中所有图像标记的集合。

LinkColor

获取或设置超链接的颜色。

Links

获取此 HTML 文档中所有超链接的列表。

RightToLeft

获取或设置当前文档中文本的方向。

Title

获取或设置当前 HTML 文档中 <TITLE> 标记的文本值。

Url

获取描述此文档位置的 URL。

VisitedLinkColor

获取或设置用户已经访问的链接(指向 HTML 页)的颜色。

Window

获取与此文档关联的 HtmlWindow

方法

AttachEventHandler(String, EventHandler)

为已命名的 HTML DOM 事件添加事件处理程序。

CreateElement(String)

新建一个指定 HTML 标记类型的 HtmlElement

DetachEventHandler(String, EventHandler)

从 HTML DOM 上的命名事件中移除事件处理程序。

Equals(Object)

测试对象是否与当前对象相等。

ExecCommand(String, Boolean, Object)

对文档执行指定的命令。

Focus()

在当前文档上设置用户输入焦点。

GetElementById(String)

将元素的 ID 特性用作搜索键来检索单个 HtmlElement

GetElementFromPoint(Point)

检索位于指定工作区坐标位置的 HTML 元素。

GetElementsByTagName(String)

检索具有指定 HTML 标记的元素集合。

GetHashCode()

检索此对象的哈希代码。

GetType()

获取当前实例的 Type

(Inherited from Object)
InvokeScript(String)

执行在 HTML 页面中定义的活动脚本函数。

InvokeScript(String, Object[])

执行在 HTML 页面中定义的活动脚本函数。

MemberwiseClone()

创建当前 Object 的浅表副本。

(Inherited from Object)
OpenNew(Boolean)

获取一个新的 HtmlDocument,以便与 Write(String) 方法一起使用。

ToString()

返回表示当前对象的字符串。

(Inherited from Object)
Write(String)

编写一个新的 HTML 页。

事件

Click

当用户单击文档上的任何位置时发生。

ContextMenuShowing

当用户请求显示文档的上下文菜单时发生。

Focusing

在将焦点提供给文档之前发生。

LosingFocus

在焦点离开控件时发生。

MouseDown

当用户单击鼠标左键时发生。

MouseLeave

当鼠标不再悬停于文档上时发生。

MouseMove

当鼠标移到文档上时发生。

MouseOver

当鼠标移到文档上时发生。

MouseUp

当用户释放鼠标左键时发生。

Stop

当向其他网页的导航被中断时发生。

操作员

Equality(HtmlDocument, HtmlDocument)

返回一个值,该值指示指定的 HtmlDocument 实例是否表示同一个值。

Inequality(HtmlDocument, HtmlDocument)

返回一个值,该值指示指定的 HtmlDocument 实例是否不表示同一个值。

适用于

.NET Core

3.0 Preview 2

.NET Framework

4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6 4.5.2 4.5.1 4.5 4.0 3.5 3.0 2.0

另请参阅

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多