HtmlDocument 類別

定義

提供最上層的程式存取方式,以存取 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 檔物件周圍的 Managed 包裝函式,也稱為 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 整個檔。 、 DIV FORMSPAN 標記 BODY 是由個別 HtmlElement 物件表示。

有幾種方式可以存取此樹狀結構中的元素。 Body使用 屬性來存取 BODY 標籤及其所有子系。 屬性 ActiveElementHtmlElement 為具有使用者輸入焦點之 HTML 頁面上的 元素提供 。 HTML 頁面內的所有元素都可以有名稱;集合 All 會使用其名稱做為索引來存取每個 HtmlElement 集合。 GetElementsByTagName 會傳回 HtmlElementCollection 具有指定 HTML 標籤名稱的所有 HtmlElement 物件的 ,例如 DIVTABLEGetElementById 會傳回對應至您提供的唯一識別碼的單一 HtmlElementGetElementFromPoint 會傳回 HtmlElement 可在提供滑鼠指標座標的畫面上找到的 。

您也可以使用 FormsImages 集合逐一查看分別代表使用者輸入表單和圖形的專案。

HtmlDocument 是以 Internet Explorer 的 DHTML DOM 所實作的 Unmanaged 介面為基礎: IHTMLDocumentIHTMLDocument2IHTMLDocument3IHTMLDocument4 。 只有這些 Unmanaged 介面上最常使用的屬性和方法會由 HtmlDocument 公開。 您可以使用 屬性直接 DomDocument 存取所有其他屬性和方法,您可以轉換成所需的 Unmanaged 介面指標。

HTML 檔案可能包含框架,這些框架是控制項內部 WebBrowser 的不同視窗。 每個框架都會顯示自己的 HTML 頁面。 集合 Frames 可透過 屬性取得 Window 。 您也可以使用 Window 屬性來調整顯示的頁面大小、捲動檔,或向使用者顯示警示和提示。

HtmlDocument 會公開裝載 HTML 網頁時,您預期要處理的最常見事件。 對於介面未直接公開的事件,您可以使用 新增 事件的 AttachEventHandler 處理常式。

HTML 檔案可能包含 SCRIPT 標記,封裝其中一種使用中指令碼語言撰寫的程式碼,例如 JScript 或 VBScript。 方法 InvokeScript 提供執行標記中 SCRIPT 定義的屬性和方法。

注意

雖然 上的 HtmlDocument 大部分屬性、方法和事件都保留與 Unmanaged DOM 上相同的名稱,但有些屬性已變更,以便與.NET Framework一致。

屬性

ActiveElement

提供目前具有使用者輸入焦點的 HtmlElement

ActiveLinkColor

取得或設定使用者按一下時的超連結 Color

All

取得 HtmlElementCollection 的執行個體,它會儲存文件的所有 HtmlElement 物件。

BackColor

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

Body

取得 BODY 標記的 HtmlElement

Cookie

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

DefaultEncoding

取得預設用於目前文件編碼。

Domain

取得或設定字串,此字串描述此文件的網域 (基於安全性目的)。

DomDocument

取得此 HtmlDocument 的 Unmanaged 介面指標。

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

(繼承來源 Object)
InvokeScript(String)

執行定義在 HTML 網頁中的 Active Scripting 函式。

InvokeScript(String, Object[])

執行定義在 HTML 網頁中的 Active Scripting 函式。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OpenNew(Boolean)

取得要與 Write(String) 方法搭配使用的新 HtmlDocument

ToString()

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

(繼承來源 Object)
Write(String)

撰寫新的 HTML 網頁。

運算子

Equality(HtmlDocument, HtmlDocument)

傳回值,指出所指定的 HtmlDocument 執行個體是否表示相同的值。

Inequality(HtmlDocument, HtmlDocument)

傳回值,指出所指定的 HtmlDocument 執行個體不是表示相同的值。

事件

Click

發生於使用者按一下文件上的任何地方時。

ContextMenuShowing

發生於使用者要求顯示文件的操作功能表時。

Focusing

發生於為文件提供焦點之前。

LosingFocus

發生於焦點離開控制項時。

MouseDown

發生於使用者按一下滑鼠左鍵時。

MouseLeave

發生於滑鼠不再停留在文件上方時。

MouseMove

發生於滑鼠移至文件上方時。

MouseOver

發生於滑鼠移至文件上方時。

MouseUp

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

Stop

發生於另一個 Web 網頁的巡覽暫止時。

適用於

另請參閱