HtmlDocument Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapewnia dostęp programowy najwyższego poziomu do dokumentu HTML hostowanego przez kontrolkę WebBrowser .
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- Dziedziczenie
-
HtmlDocument
Przykłady
Poniższy przykład kodu używa danych z bazy danych Northwind do dynamicznego HTML TABLE
tworzenia przy użyciu polecenia CreateElement. Metoda AppendChild jest również używana, najpierw do dodawania komórek (TD
elementów) do wierszy (TR
elementów), a następnie do dodawania wierszy do tabeli, a na koniec dołączania tabeli na końcu bieżącego dokumentu. Przykładowy kod wymaga, aby aplikacja ma kontrolkę WebBrowser o nazwie WebBrowser1
. Kod powinien być wywoływany po załadowaniu dokumentu.
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
Uwagi
HtmlDocument udostępnia zarządzaną otokę wokół obiektu dokumentu programu Internet Explorer, znanego również jako model DOM (HTML Document Object Model). Wystąpienie kontrolki można uzyskać HtmlDocument za pomocą Document właściwości kontrolki WebBrowser .
Tagi HTML wewnątrz dokumentu HTML można zagnieżdżać wewnątrz siebie. HtmlDocument w ten sposób reprezentuje drzewo dokumentów, którego elementy podrzędne HtmlElement są wystąpieniami klasy. Poniższy przykład kodu przedstawia prosty plik 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>
W tym przykładzie HtmlDocument reprezentuje cały dokument wewnątrz HTML
tagów. Tagi BODY
, DIV
FORM
i SPAN
są reprezentowane przez poszczególne HtmlElement obiekty.
Istnieje kilka sposobów uzyskiwania dostępu do elementów w tym drzewie. Użyj właściwości , Body aby uzyskać dostęp do tagu BODY
i wszystkich jego elementów podrzędnych. Właściwość ActiveElement udostępnia HtmlElement element dla elementu na stronie HTML, która ma fokus wejściowy użytkownika. Wszystkie elementy na stronie HTML mogą mieć nazwę; All kolekcja zapewnia dostęp do każdego HtmlElement z nich przy użyciu jego nazwy jako indeksu.
GetElementsByTagName
HtmlElementCollection zwróci wszystkie HtmlElement obiekty o podanej nazwie tagu HTML, na przykład DIV
lub TABLE
.
GetElementById zwróci pojedynczy HtmlElement odpowiadający mu unikatowy identyfikator, który podajesz.
GetElementFromPoint zwróci element HtmlElement , który można znaleźć na ekranie na podanych współrzędnych wskaźnika myszy.
Można również użyć kolekcji Forms i Images , aby iterować elementy reprezentujące odpowiednio formularze wejściowe i grafiki użytkownika.
HtmlDocumentjest oparty na niezarządzanych interfejsach implementowanych przez dom DHTML programu Internet Explorer: IHTMLDocument
, , IHTMLDocument2
IHTMLDocument3
i IHTMLDocument4
. Tylko najczęściej używane właściwości i metody w tych niezarządzanych interfejsach są uwidocznione przez program HtmlDocument. Dostęp do wszystkich innych właściwości i metod można uzyskać bezpośrednio przy użyciu DomDocument właściwości, którą można rzutować do żądanego niezarządzanego wskaźnika interfejsu.
Dokument HTML może zawierać ramki, które są różnymi oknami wewnątrz kontrolki WebBrowser . Każda ramka wyświetla własną stronę HTML. Kolekcja Frames jest dostępna za pośrednictwem Window właściwości . Możesz również użyć Window właściwości , aby zmienić rozmiar wyświetlanej strony, przewinąć dokument lub wyświetlić alerty i monity do użytkownika.
HtmlDocument uwidacznia najbardziej typowe zdarzenia, które powinny być obsługiwane podczas hostowania stron HTML. W przypadku zdarzeń, które nie są widoczne bezpośrednio przez interfejs, można dodać procedurę obsługi dla zdarzenia przy użyciu polecenia AttachEventHandler.
Pliki HTML mogą zawierać SCRIPT
tagi, które hermetyzują kod napisany w jednym z języków aktywnych skryptów, takich jak JScript lub VBScript. Metoda InvokeScript zapewnia wykonywanie właściwości i metod zdefiniowanych w tagu SCRIPT
.
Uwaga
Podczas gdy większość właściwości, metod i zdarzeń w systemie HtmlDocument zachowała takie same nazwy, jak w niezarządzanych elementach DOM, niektóre zostały zmienione pod kątem spójności z programem .NET Framework.
Właściwości
ActiveElement |
Udostępnia aktualnie HtmlElement fokus danych wejściowych użytkownika. |
ActiveLinkColor |
Pobiera lub ustawia Color hiperlink po kliknięciu przez użytkownika. |
All |
Pobiera wystąpienie obiektu HtmlElementCollection, które przechowuje wszystkie HtmlElement obiekty dla dokumentu. |
BackColor |
Pobiera lub ustawia kolor tła dokumentu HTML. |
Body |
HtmlElement Pobiera tag dla tagu |
Cookie |
Pobiera lub ustawia pliki cookie HTTP skojarzone z tym dokumentem. |
DefaultEncoding |
Pobiera kodowanie używane domyślnie dla bieżącego dokumentu. |
Domain |
Pobiera lub ustawia ciąg opisujący domenę tego dokumentu na potrzeby zabezpieczeń. |
DomDocument |
Pobiera niezarządzany wskaźnik interfejsu dla tego HtmlDocumentpolecenia . |
Encoding |
Pobiera lub ustawia kodowanie znaków dla tego dokumentu. |
Focused |
Pobiera wartość wskazującą, czy dokument ma fokus wejściowy użytkownika. |
ForeColor |
Pobiera lub ustawia kolor tekstu dokumentu. |
Forms |
Pobiera kolekcję wszystkich |
Images |
Pobiera kolekcję wszystkich tagów obrazów w dokumencie. |
LinkColor |
Pobiera lub ustawia kolor hiperlinków. |
Links |
Pobiera listę wszystkich hiperlinków w tym dokumencie HTML. |
RightToLeft |
Pobiera lub ustawia kierunek tekstu w bieżącym dokumencie. |
Title |
Pobiera lub ustawia wartość tekstowa tagu |
Url |
Pobiera adres URL opisujący lokalizację tego dokumentu. |
VisitedLinkColor |
Pobiera lub ustawia kolor linków do stron HTML, które użytkownik już odwiedził. |
Window |
HtmlWindow Pobiera skojarzony z tym dokumentem. |
Metody
AttachEventHandler(String, EventHandler) |
Dodaje procedurę obsługi zdarzeń dla nazwanego zdarzenia DOM HTML. |
CreateElement(String) |
Tworzy nowy |
DetachEventHandler(String, EventHandler) |
Usuwa program obsługi zdarzeń z nazwanego zdarzenia w modelu DOM HTML. |
Equals(Object) |
Sprawdza obiekt pod kątem równości względem bieżącego obiektu. |
ExecCommand(String, Boolean, Object) |
Wykonuje określone polecenie względem dokumentu. |
Focus() |
Ustawia fokus danych wejściowych użytkownika na bieżącym dokumencie. |
GetElementById(String) |
Pobiera jeden przy HtmlElement użyciu atrybutu elementu |
GetElementFromPoint(Point) |
Pobiera element HTML znajdujący się na określonych współrzędnych klienta. |
GetElementsByTagName(String) |
Pobierz kolekcję elementów z określonym tagiem HTML. |
GetHashCode() |
Pobiera kod skrótu dla tego obiektu. |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
InvokeScript(String) |
Wykonuje funkcję Active Scripting zdefiniowaną na stronie HTML. |
InvokeScript(String, Object[]) |
Wykonuje funkcję Active Scripting zdefiniowaną na stronie HTML. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OpenNew(Boolean) |
Pobiera nowy HtmlDocument element do użycia z Write(String) metodą . |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Write(String) |
Zapisuje nową stronę HTML. |
Operatory
Equality(HtmlDocument, HtmlDocument) |
Zwraca wartość wskazującą, czy określone HtmlDocument wystąpienia reprezentują tę samą wartość. |
Inequality(HtmlDocument, HtmlDocument) |
Zwraca wartość wskazującą, czy określone HtmlDocument wystąpienia nie reprezentują tej samej wartości. |
Zdarzenia
Click |
Występuje, gdy użytkownik kliknie dowolne miejsce w dokumencie. |
ContextMenuShowing |
Występuje, gdy użytkownik żąda wyświetlenia menu kontekstowego dokumentu. |
Focusing |
Występuje przed udostępnieniem dokumentu fokusu. |
LosingFocus |
Występuje, gdy fokus opuszcza kontrolkę. |
MouseDown |
Występuje, gdy użytkownik kliknie lewy przycisk myszy. |
MouseLeave |
Występuje, gdy kursor myszy nie jest już umieszczany na dokumencie. |
MouseMove |
Występuje po przeniesieniu myszy nad dokumentem. |
MouseOver |
Występuje po przeniesieniu myszy nad dokumentem. |
MouseUp |
Występuje, gdy użytkownik zwolni lewy przycisk myszy. |
Stop |
Występuje po zatrzymaniu nawigacji na innej stronie sieci Web. |