共用方式為


HtmlDocument 類別

定義

提供由控制項託管的 WebBrowser HTML 文件的頂層程式存取。

public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
繼承
HtmlDocument

範例

以下程式碼範例使用 Northwind 資料庫的資料,動態地建立HTML TABLE一個 。CreateElementAppendChild 方法也被使用,先將儲存格(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)。 你透過控制的屬性WebBrowser獲得一個HtmlDocumentDocument實例。

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這些 、 DIVFORMSPAN 標籤以個別HtmlElement物件表示。

你可以透過多種方式進入這棵樹中的元素。 使用該 Body 資產來存取 BODY 標籤及其所有子節點。 這個 ActiveElement 屬性會給你 HtmlElement 在 HTML 頁面上有使用者輸入焦點的元素。 HTML 頁面中的所有元素都可以有名稱;該All收藏以名稱作為索引,提供存取。HtmlElement GetElementsByTagName 會回傳 HtmlElementCollection 所有 HtmlElement 具有特定 HTML 標籤名稱的物件,例如 DIVTABLEGetElementById 會回傳對應你所提供的唯一 ID 的單一 HtmlElementGetElementFromPoint 會回傳 HtmlElement 螢幕上提供的滑鼠指標座標。

你也可以使用 和 FormsImages collection 來遍歷代表使用者輸入表單和圖形的元素。

HtmlDocument基於 Internet Explorer 的 DHTML DOM 所實作的非管理介面:IHTMLDocumentIHTMLDocument2IHTMLDocument3IHTMLDocument4和 。 只有在這些未管理介面上最常用的屬性與方法會被 HtmlDocument揭露。 你可以直接用這個 DomDocument 屬性存取所有其他屬性和方法,然後再把它cast成想要的非管理介面指標。

HTML 文件可能包含框架,框架是控制項內 WebBrowser 的不同視窗。 每個框架顯示自己的 HTML 頁面。 該 Frames 收藏可透過物業 Window 取得。 您也可以使用此 Window 屬性來調整顯示頁面大小、捲動文件,或向使用者顯示警示與提示。

HtmlDocument 它會顯示你在 HTML 頁面托管時最常會遇到的事件。 對於介面未直接暴露的事件,你可以使用 AttachEventHandler

HTML 檔案可能包含 SCRIPT 封裝以 Active Scripting 語言撰寫的代碼的標籤,例如 JScript 或 VBScript。 此 InvokeScript 方法提供執行標籤中定義的 SCRIPT 屬性與方法。

備註

雖然大多數屬性、方法和事件在 上 HtmlDocument 保留了與非管理 DOM 相同的名稱,但為了與 .NET Framework 保持一致,有些已做了更改。

屬性

名稱 Description
ActiveElement

提供目前使用者輸入焦點的資訊 HtmlElement

ActiveLinkColor

當使用者點擊時,會取得或設定 Color 超連結。

All

會得到一個實例,該實例 HtmlElementCollection儲存文件中的所有 HtmlElement 物件。

BackColor

取得或設定 HTML 文件的背景顏色。

Body

HtmlElement到標籤。BODY

Cookie

取得或設定與本文件相關的 HTTP Cookie。

DefaultEncoding

會取得目前文件預設使用的編碼方式。

Domain

為了安全考量,取得或設定描述本文件域的字串。

DomDocument

會取得非 HtmlDocument管理介面指標。

Encoding

取得或設定此文件的字元編碼。

Focused

會獲得一個值,表示文件是否有使用者輸入焦點。

ForeColor

取得或設定文件的文字顏色。

Forms

取得文件中所有 <FORM> 元素的集合。

Images

會取得文件中所有圖片標籤的集合。

LinkColor

取得或設定超連結的顏色。

Links

會列出此 HTML 文件中所有超連結。

RightToLeft

取得或設定目前文件中文字的方向。

Title

取得或設定目前 HTML 文件中標籤的 <TITLE> 文字值。

Url

取得描述此文件位置的網址。

VisitedLinkColor

取得或設定使用者已瀏覽過的 HTML 頁面連結的顏色。

Window

HtmlWindow 此文件相關。

方法

名稱 Description
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

(繼承來源 Object)
InvokeScript(String, Object[])

執行定義於 HTML 頁面中的主動腳本函式。

InvokeScript(String)

執行定義於 HTML 頁面中的主動腳本函式。

MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
OpenNew(Boolean)

會用新的 HtmlDocument 方法來搭配 Write(String)

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)
Write(String)

寫一個新的 HTML 頁面。

操作員

名稱 Description
Equality(HtmlDocument, HtmlDocument)

回傳一個值,表示指定的 HtmlDocument 實例是否代表相同值。

Inequality(HtmlDocument, HtmlDocument)

回傳一個值,表示指定的 HtmlDocument 實例是否代表相同的值。

事件

名稱 Description
Click

當使用者在文件上任意點擊時,會發生這種情況。

ContextMenuShowing

當使用者請求顯示文件的右鍵選單時,會發生這種情況。

Focusing

發生在文件被聚焦之前。

LosingFocus

當專注離開控制時會發生。

MouseDown

當使用者點擊滑鼠左鍵時會發生。

MouseLeave

當滑鼠不再懸停在文件上時會發生。

MouseMove

當滑鼠移動到文件上時會發生。

MouseOver

當滑鼠移動到文件上時會發生。

MouseUp

當使用者放開滑鼠左鍵時會發生。

Stop

當導覽到另一個網頁時會發生。

適用於

另請參閱