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
W poniższym przykładzie kodu dane z bazy danych Northwind są używane do dynamicznego HTML TABLE
tworzenia obiektu przy użyciu polecenia CreateElement. Metoda AppendChild jest również używana, najpierw w celu dodania komórek (TD
elementów) do wierszy (TR
elementów), a następnie dodania wierszy do tabeli, a na koniec dołączenia 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 (DOCUMENT Object Model). Wystąpienie klasy HtmlDocument można uzyskać za pomocą Document właściwości kontrolki WebBrowser .
Tagi HTML wewnątrz dokumentu HTML mogą być zagnieżdżone wewnątrz siebie. HtmlDocument w ten sposób reprezentuje drzewo dokumentów, którego elementy podrzędne są wystąpieniami HtmlElement 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 tagów HTML
. 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. Body Użyj właściwości , 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 danych wejściowych użytkownika. Wszystkie elementy na stronie HTML mogą mieć nazwę; All kolekcja zapewnia dostęp do każdej HtmlElement z nich przy użyciu jej nazwy jako indeksu. GetElementsByTagName Polecenie zwróci wszystkie HtmlElementCollection HtmlElement obiekty o podanej nazwie tagu HTML, takiej jak DIV
lub TABLE
. GetElementById funkcja zwróci pojedynczy odpowiadający HtmlElement identyfikatorowi unikatowego, który podajesz. GetElementFromPoint funkcja zwróci HtmlElement wartość , którą można znaleźć na ekranie na podanych współrzędnych wskaźnika myszy.
Kolekcji Forms i Images można również używać do iterowania elementów reprezentujących odpowiednio formularze danych wejściowych i grafiki użytkownika.
HtmlDocument jest 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ą udostępniane przez HtmlDocumentprogram . 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 aktywnych języków skryptów, takich jak JScript lub VBScript. Metoda InvokeScript zapewnia wykonywanie właściwości i metod zdefiniowanych w tagu SCRIPT
.
Uwaga
Chociaż większość właściwości, metod i zdarzeń w systemie HtmlDocument zachowała takie same nazwy, jak w niezarządzanych modelu DOM, niektóre zostały zmienione w celu zachowania spójności z .NET Framework.
Właściwości
ActiveElement |
HtmlElement Zapewnia, który aktualnie ma fokus danych wejściowych użytkownika. |
ActiveLinkColor |
Pobiera lub ustawia Color hiperłącze 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 |
Pobiera element HtmlElement 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 program 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 HtmlElement przy użyciu atrybutu |
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 wartość bieżącego wystąpienia. (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 w dowolnym miejscu dokumentu. |
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. |