HtmlDocument 类 使用

HtmlDocument 类 使用HtmlDocument类 注意:此类在.NETFramework2.0版中是新增的。提供对WebBrowser控件承载的HTML文档的顶级编程访问。命名空间:System.Windows.Forms程序集:System.Windows.Forms(在system.windows.forms.dll中)varExpCollDivS

大家好,又见面了,我是你们的朋友全栈君。

HtmlDocument 类 

注意:此类在 .NET Framework 2.0 版中是新增的。

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

命名空间:System.Windows.Forms
程序集:System.Windows.Forms(在 system.windows.forms.dll 中)

<script type=”text/Javascript”> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + “ctl00_LibFrame_ctl04f0129ed,”; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + “ctl00_LibFrame_ctl04img,”; </script>
语法

Visual Basic(声明)

Public NotInheritable Class HtmlDocument

Visual Basic(用法)

Dim instance As HtmlDocument

C#

public sealed class HtmlDocument

C++

public ref class HtmlDocument sealed

J#

public final class HtmlDocument

JScript

public final class HtmlDocument

<script type=”text/Javascript”> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + “ctl00_LibFrame_ctl112f8c7f9,”; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + “ctl00_LibFrame_ctl11img,”; </script>
备注

HtmlDocument 为 Internet Explorer 的文档对象提供托管包装,该文档对象也称为 HTML 文档对象模型 (DOM)。您可以通过 WebBrowser 控件的 Document 属性获取 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 标记内的整个文档。BODYDIVFORMSPAN 标记各由一个单独的 HtmlElement 对象表示。

访问此树中的元素的方法有多种。使用 Body 属性可以访问 BODY 标记及其所有子标记。ActiveElement 属性提供 HTML 页上具有用户输入焦点的元素的 HtmlElement。HTML 页中的所有元素都可以有一个名称;All 集合将元素的名称用作索引来提供对每个 HtmlElement 的访问。GetElementsByTagName 将返回具有给定 HTML 标记名称(如 DIVTABLE)的所有 HtmlElement 对象的 HtmlElementCollectionGetElementById 将返回对应于所提供的唯一 ID 的单个 HtmlElementGetElementFromPoint 将返回可以在屏幕上所提供的鼠标指针坐标位置找到的 HtmlElement

您也可以分别使用 FormsImages 集合来循环访问表示用户输入窗体和图形的元素。

HtmlDocument 基于 Internet Explorer 的 DHTML DOM 实现的非托管接口:IHTMLDocumentIHTMLDocument2IHTMLDocument3IHTMLDocument4HtmlDocument 只公开了这些非托管接口的最常用属性和方法。使用 DomDocument 属性(可以强制转换为所需的非托管接口指针),可以直接访问其他所有属性和方法。

HTML 文档可以包含框架,框架是 WebBrowser 控件内部的不同窗口。每个框架均显示它自己的 HTML 页。Frames 集合在没有 Window 属性的情况下也可以使用。您也可以使用 Window 属性来调整显示页的大小、滚动文档或向用户显示警报和提示。

HtmlDocument 公开在承载 HTML 页时期望处理的最常见事件。对于接口没有直接公开的事件,可以使用 AttachEventHandler 为该事件添加一个处理程序。

HTML 文件可以包含 SCRIPT 标记,这些标记封装使用活动脚本语言之一(如 JScript 或 VBScript)编写的代码。InvokeScript 方法用于执行 SCRIPT 标记中定义的属性和方法。

Note注意

虽然 HtmlDocument 中的大部分属性、方法和事件的名称都与非托管 DOM 上的对应项的名称相同,但为了与 .NET Framework 保持一致,某些名称已发生了改变。

<script type=”text/Javascript”> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + “ctl00_LibFrame_ctl3018e8f01,”; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + “ctl00_LibFrame_ctl30img,”; </script>
示例

下面的代码示例通过 CreateElement,使用 Northwind 数据库中的数据动态创建一个 HTML TABLE。此外,还使用 AppendChild 方法,首先向行(TR 元素)中添加单元格(TD 元素),然后向表中添加行,最后将表追加到当前文档的末尾。该代码示例要求应用程序具有一个称为 WebBrowser1WebBrowser 控件。

Visual Basic

Private Sub DisplayCustomersTable()
    ' Initialize the database connection.
    Dim CustomerData As New DataSet()
    Dim CustomerTable As DataTable

    Try
        Dim DBConn As New SqlConnection("Data Source=CLIENTUE;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

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

<script type=”text/Javascript”> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + “ctl00_LibFrame_ctl3544ba711,”; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + “ctl00_LibFrame_ctl35img,”; </script>
继承层次结构

System.Object

  
System.Windows.Forms.HtmlDocument

<script type=”text/Javascript”> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + “ctl00_LibFrame_ctl3751b57cc,”; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + “ctl00_LibFrame_ctl37img,”; </script>
线程安全

此类型的任何公共静态(Visual Basic 中的
Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

<script type=”text/Javascript”> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + “ctl00_LibFrame_ctl38649aeb3,”; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + “ctl00_LibFrame_ctl38img,”; </script>
平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

<script type=”text/Javascript”> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + “ctl00_LibFrame_ctl4006129f6,”; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + “ctl00_LibFrame_ctl40img,”; </script>
版本信息

.NET Framework

受以下版本支持:2.0

<script type=”text/Javascript”> var ExpCollDivStr=ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + “ctl00_LibFrame_ctl4146a5d7d,”; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + “ctl00_LibFrame_ctl41img,”; </script>
请参见

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161631.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue生成二维码并保存图片_vue扫码登录

    vue生成二维码并保存图片_vue扫码登录传送门

    2022年10月4日
    3
  • 理解SOAP和WebService

    理解SOAP和WebService1.SOAP是什么SOAP简单对象访问协议,是交换数据的一种协议规范,是一种轻量的、简单的、基于XML的协议;SOAP是一种通信协议,用于应用程序之间的通信;SOAP是一种用于发送消息的格式;SOAP被设计用来通过因特网进行通信;SOAP基于XML;2.webService是什么从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进…

    2022年7月24日
    48
  • python基础系列教程——python基础语法全解

    python基础系列教程——python基础语法全解全栈工程师开发手册(作者:陈玓玏)python教程全解了解python1.了解PythonPython是一种解释型(这意味着开发过程中没有了编译这个环节)、面向对象(支持面向对象的风格或代码封装在对象的编程技术)、动态数据类型的交互式(可在命令行中通过Python提示符及直接代码执行程序)高级程序设计语言。2.Python标识符标识符由字母、数

    2022年7月22日
    13
  • 幼儿数学推理题图片_逻辑图形推理题

    幼儿数学推理题图片_逻辑图形推理题前天上幼儿园中班的侄子考了我一道题请在括号内填上正确的答案:(),(),2,4,6,7,8算了半小时都没头绪还被“羞辱”了一番:舅舅,这么简单的题都不会,还大学毕业的呢。看着侄子卖关子的表情,着实尴尬。✿赶✿紧✿想✿答✿案✿答案:(快来快来),(数一数),2,4,6,7,8!看完答案我感觉我的智商被侮辱了!气得我把我侄子“揍”了一顿如果你也没答出来千万别怀疑人生当今社会竞争那么激烈,仅仅拥有知…

    2025年10月15日
    3
  • 关于OleDbCommand中操作数据库的几种方法的区别「建议收藏」

    关于OleDbCommand中操作数据库的几种方法的区别「建议收藏」在vb.net中利用OleDb的OleDbCommand类操作数据库,有以下这些方法: ExecuteNoQuery()返回值类型integer,常用来执行增删改操作,返回操作影响的行数ExecuteReader()返回一个只读的数据集,常用来作查询操作ExecuteScalar()返回值类型Object,执行查询,并返回查询所返回的结果集中第一行的第一列,常用来作一

    2022年5月19日
    35
  • deepin uos 是否开源_deepin docker

    deepin uos 是否开源_deepin docker国产操作系统UOSDeepinLinux源码编译安装Nginx

    2022年10月5日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号