HtmlDocument 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
컨트롤에서 호스트 WebBrowser 하는 HTML 문서에 대한 최상위 프로그래밍 방식 액세스를 제공합니다.
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- 상속
-
HtmlDocument
예제
다음 코드 예제에서는 Northwind 데이터베이스의 데이터를 사용하여 동적으로 만듭니 HTML TABLECreateElement다.
AppendChild 이 메서드는 먼저 행(요소)에 셀(TDTR요소)을 추가한 다음 테이블에 행을 추가하고 마지막으로 현재 문서의 끝에 표를 추가하는 데 사용됩니다. 코드 예제에서는 애플리케이션에 이름이 지정된 WebBrowser1컨트롤이 WebBrowser 있어야 합니다. 문서를 로드한 후에 코드를 호출해야 합니다.
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 는 DOM(HTML 문서 개체 모델)이라고도 하는 Internet Explorer의 문서 개체를 중심으로 관리되는 래퍼를 제공합니다. 컨트롤의 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 의 전체 문서를 나타냅니다.
BODY, DIVFORM 및 SPAN 태그는 개별 HtmlElement 개체로 표시됩니다.
이 트리의 요소에 액세스할 수 있는 방법에는 여러 가지가 있습니다.
Body 이 속성을 사용하여 태그 및 모든 자식에 BODY 액세스합니다. 이 속성은 ActiveElementHtmlElement 사용자 입력 포커스가 있는 HTML 페이지의 요소에 대한 정보를 제공합니다. HTML 페이지 내의 모든 요소에는 이름이 있을 수 있습니다. 컬렉션은 All 해당 이름을 인덱스로 사용하여 각각 HtmlElement 에 대한 액세스를 제공합니다.
GetElementsByTagName는 지정된 HTML 태그 이름을 가진 모든 HtmlElement 개체(예: DIV 또는 TABLE.)를 반환 HtmlElementCollection 합니다.
GetElementById 은 제공하는 고유 ID에 해당하는 단일 HtmlElement 항목을 반환합니다.
GetElementFromPoint 는 제공된 마우스 포인터 좌표의 화면에서 찾을 수 있는 값을 반환 HtmlElement 합니다.
및 Images 컬렉션을 사용하여 Forms 사용자 입력 양식과 그래픽을 나타내는 요소를 반복할 수도 있습니다.
HtmlDocument는 Internet Explorer의 DHTML DOM에서 구현하는 관리되지 않는 인터페이스를 IHTMLDocument2IHTMLDocument3IHTMLDocument4기반으로 합니다. IHTMLDocument 이러한 관리되지 않는 인터페이스에서 가장 자주 사용되는 속성 및 메서드만 에 의해 HtmlDocument노출됩니다. 원하는 관리되지 않는 인터페이스 포인터로 캐스팅할 수 있는 속성을 사용하여 DomDocument 다른 모든 속성 및 메서드에 직접 액세스할 수 있습니다.
HTML 문서에는 컨트롤 내부의 다른 창인 프레임이 WebBrowser 포함될 수 있습니다. 각 프레임에는 자체 HTML 페이지가 표시됩니다. 컬렉션을 Frames 속성을 통해 Window 사용할 수 있습니다. 이 속성을 사용하여 Window 표시된 페이지의 크기를 조정하거나, 문서를 스크롤하거나, 사용자에게 경고 및 프롬프트를 표시할 수도 있습니다.
HtmlDocument 는 HTML 페이지를 호스팅할 때 처리해야 하는 가장 일반적인 이벤트를 노출합니다. 인터페이스에서 직접 노출되지 않는 이벤트의 경우 를 사용하여 AttachEventHandler이벤트에 대한 처리기를 추가할 수 있습니다.
HTML 파일에는 JScript 또는 VBScript와 같은 활성 스크립팅 언어 중 하나로 작성된 코드를 캡슐화하는 태그가 포함될 SCRIPT 수 있습니다. 이 메서드는 InvokeScript 태그에 SCRIPT 정의된 속성 및 메서드의 실행을 제공합니다.
메모
대부분의 속성, 메서드 및 이벤트가 HtmlDocument 관리되지 않는 DOM에서와 동일한 이름을 유지하지만 일부는 .NET Framework와의 일관성을 위해 변경되었습니다.
속성
| Name | Description |
|---|---|
| ActiveElement |
HtmlElement 현재 사용자 입력 포커스가 있는 값을 제공합니다. |
| ActiveLinkColor |
사용자가 클릭할 Color 때 하이퍼링크의 값을 가져오거나 설정합니다. |
| All |
문서의 모든 HtmlElement 개체를 저장하는 인스턴스HtmlElementCollection를 가져옵니다. |
| BackColor |
HTML 문서의 배경색을 가져오거나 설정합니다. |
| Body |
태그의 HtmlElement 값을 가져옵니다 |
| Cookie |
이 문서와 연결된 HTTP 쿠키를 가져오거나 설정합니다. |
| DefaultEncoding |
현재 문서에 기본적으로 사용되는 인코딩을 가져옵니다. |
| Domain |
보안을 위해 이 문서의 도메인을 설명하는 문자열을 가져오거나 설정합니다. |
| DomDocument |
이에 HtmlDocument대한 관리되지 않는 인터페이스 포인터를 가져옵니다. |
| Encoding |
이 문서의 문자 인코딩을 가져오거나 설정합니다. |
| Focused |
문서에 사용자 입력 포커스가 있는지 여부를 나타내는 값을 가져옵니다. |
| ForeColor |
문서의 텍스트 색을 가져오거나 설정합니다. |
| Forms |
문서에 있는 모든 요소의 |
| Images |
문서의 모든 이미지 태그 컬렉션을 가져옵니다. |
| LinkColor |
하이퍼링크의 색을 가져오거나 설정합니다. |
| Links |
이 HTML 문서 내의 모든 하이퍼링크 목록을 가져옵니다. |
| RightToLeft |
현재 문서의 텍스트 방향을 가져오거나 설정합니다. |
| Title |
현재 HTML 문서에서 태그의 |
| Url |
이 문서의 위치를 설명하는 URL을 가져옵니다. |
| VisitedLinkColor |
사용자가 이미 방문한 HTML 페이지에 대한 링크의 색을 가져오거나 설정합니다. |
| Window |
HtmlWindow 이 문서와 연결된 문서를 가져옵니다. |
메서드
| Name | Description |
|---|---|
| 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 페이지를 씁니다. |
연산자
| Name | Description |
|---|---|
| Equality(HtmlDocument, HtmlDocument) |
지정된 HtmlDocument 인스턴스가 동일한 값을 나타내는지 여부를 나타내는 값을 반환합니다. |
| Inequality(HtmlDocument, HtmlDocument) |
지정된 HtmlDocument 인스턴스가 동일한 값을 나타내지 않는지 여부를 나타내는 값을 반환합니다. |
이벤트
| Name | Description |
|---|---|
| Click |
사용자가 문서의 아무 곳이나 클릭할 때 발생합니다. |
| ContextMenuShowing |
사용자가 문서의 상황에 맞는 메뉴를 표시하도록 요청할 때 발생합니다. |
| Focusing |
문서에 포커스가 지정되기 전에 발생합니다. |
| LosingFocus |
포커스가 컨트롤을 벗어나는 동안 발생합니다. |
| MouseDown |
사용자가 마우스 왼쪽 단추를 클릭할 때 발생합니다. |
| MouseLeave |
마우스가 더 이상 문서 위로 마우스를 가져가지 않을 때 발생합니다. |
| MouseMove |
마우스를 문서 위로 이동할 때 발생합니다. |
| MouseOver |
마우스를 문서 위로 이동할 때 발생합니다. |
| MouseUp |
사용자가 마우스 왼쪽 단추를 놓을 때 발생합니다. |
| Stop |
다른 웹 페이지로의 탐색이 중지될 때 발생합니다. |