HtmlDocument Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce l'accesso a livello di codice al primo livello della struttura di un documento HTML contenuto nel controllo WebBrowser.
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- Ereditarietà
-
HtmlDocument
Esempio
Nell'esempio di codice seguente vengono usati i dati del database Northwind per creare un oggetto HTML TABLE
in modo dinamico usando CreateElement. Viene usato anche il AppendChild metodo , innanzitutto per aggiungere celle (TD
elementi) a righe (TR
elementi ), quindi per aggiungere righe alla tabella e infine per aggiungere la tabella alla fine del documento corrente. L'esempio di codice richiede che l'applicazione disponga di un WebBrowser controllo denominato WebBrowser1
. Il codice deve essere chiamato dopo il caricamento di un documento.
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
Commenti
HtmlDocument fornisce un wrapper gestito sull'oggetto documento di Internet Explorer, noto anche come DOM (Document Object Model) HTML. Si ottiene un'istanza di HtmlDocument tramite la Document proprietà del WebBrowser controllo .
I tag HTML all'interno di un documento HTML possono essere annidati tra loro. HtmlDocument rappresenta quindi un albero del documento, i cui figli sono istanze della HtmlElement classe . Nell'esempio di codice seguente viene illustrato un semplice file 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>
In questo esempio rappresenta HtmlDocument l'intero documento all'interno dei HTML
tag. I BODY
tag , FORM
DIV
e SPAN
sono rappresentati da singoli HtmlElement oggetti.
Esistono diversi modi per accedere agli elementi in questa struttura ad albero. Utilizzare la Body proprietà per accedere al BODY
tag e a tutti i relativi elementi figlio. La ActiveElement proprietà fornisce l'oggetto HtmlElement per l'elemento in una pagina HTML con stato attivo l'input dell'utente. Tutti gli elementi all'interno di una pagina HTML possono avere un nome; la raccolta fornisce l'accesso All a ogni HtmlElement oggetto usando il relativo nome come indice.
GetElementsByTagName restituirà un HtmlElementCollection oggetto di tutti gli HtmlElement oggetti con un determinato nome di tag HTML, ad esempio DIV
o TABLE
.
GetElementById restituirà il singolo HtmlElement corrispondente all'ID univoco fornito.
GetElementFromPoint restituirà l'oggetto HtmlElement che può essere trovato sullo schermo in corrispondenza delle coordinate del puntatore del mouse fornite.
È anche possibile usare la Forms raccolta e Images per scorrere gli elementi che rappresentano rispettivamente i moduli di input utente e la grafica.
HtmlDocument si basa sulle interfacce non gestite implementate dal DOM DHTML di Internet Explorer: IHTMLDocument
, IHTMLDocument2
, IHTMLDocument3
e IHTMLDocument4
. Solo le proprietà e i metodi usati più di frequente in queste interfacce non gestite vengono esposti da HtmlDocument. È possibile accedere a tutte le altre proprietà e metodi direttamente usando la DomDocument proprietà , che è possibile eseguire il cast al puntatore di interfaccia non gestito desiderato.
Un documento HTML può contenere frame, che sono finestre diverse all'interno del WebBrowser controllo. Ogni frame visualizza la propria pagina HTML. La Frames raccolta è disponibile tramite la Window proprietà . È anche possibile utilizzare la Window proprietà per ridimensionare la pagina visualizzata, scorrere il documento o visualizzare avvisi e richieste all'utente.
HtmlDocument espone gli eventi più comuni che si prevede di gestire durante l'hosting di pagine HTML. Per gli eventi non esposti direttamente dall'interfaccia, è possibile aggiungere un gestore per l'evento usando AttachEventHandler.
I file HTML possono contenere SCRIPT
tag che incapsulano il codice scritto in uno dei linguaggi di scripting attivo, ad esempio JScript o VBScript. Il InvokeScript metodo fornisce l'esecuzione di proprietà e metodi definiti in un SCRIPT
tag.
Nota
Anche se la maggior parte delle proprietà, dei metodi e degli eventi in HtmlDocument ha mantenuto gli stessi nomi del DOM non gestito, alcuni sono stati modificati per coerenza con .NET Framework.
Proprietà
ActiveElement |
Fornisce l'oggetto HtmlElement che ha attualmente lo stato attivo per l'input dell'utente. |
ActiveLinkColor |
Ottiene o imposta l'oggetto Color di un collegamento ipertestuale quando un utente vi fa clic. |
All |
Ottiene un'istanza di HtmlElementCollection, in cui sono memorizzati tutti gli oggetti HtmlElement per il documento. |
BackColor |
Ottiene o imposta il colore di sfondo del documento HTML. |
Body |
Ottiene l'oggetto HtmlElement per il |
Cookie |
Ottiene o imposta i cookie HTTP associati al documento corrente. |
DefaultEncoding |
Ottiene la codifica usata per impostazione predefinita nel documento corrente. |
Domain |
Ottiene o imposta la stringa che descrive il dominio del documento corrente, a scopo di sicurezza. |
DomDocument |
Ottiene il puntatore a interfaccia non gestita per HtmlDocument. |
Encoding |
Ottiene o imposta la codifica dei caratteri per il documento corrente. |
Focused |
Ottiene un valore che indica se il documento dispone dello stato attivo per l'input dell'utente. |
ForeColor |
Ottiene o imposta il colore del testo del documento. |
Forms |
Ottiene una raccolta di tutti gli |
Images |
Ottiene una raccolta di tutti i tag di immagine nel documento. |
LinkColor |
Ottiene o imposta il colore dei collegamenti ipertestuali. |
Links |
Ottiene un elenco di tutti i collegamenti ipertestuali nel documento HTML corrente. |
RightToLeft |
Ottiene o imposta la direzione del testo nel documento corrente. |
Title |
Ottiene o imposta il valore di testo del |
Url |
Ottiene l'URL che descrive la posizione del documento corrente. |
VisitedLinkColor |
Ottiene o imposta il colore dei collegamenti alle pagine HTML che l'utente ha già visitato. |
Window |
Ottiene l'oggetto HtmlWindow associato al documento corrente. |
Metodi
AttachEventHandler(String, EventHandler) |
Aggiunge un gestore eventi per l'evento HTML DOM specificato. |
CreateElement(String) |
Crea un nuovo elemento |
DetachEventHandler(String, EventHandler) |
Rimuove un gestore eventi da un evento specifico in HTML DOM. |
Equals(Object) |
Verifica l'uguaglianza dell'oggetto relativamente a quello corrente. |
ExecCommand(String, Boolean, Object) |
Esegue il comando specificato sul documento. |
Focus() |
Imposta lo stato attivo per l'input dell'utente sul documento corrente. |
GetElementById(String) |
Recupera un singolo HtmlElement oggetto usando l'attributo dell'elemento |
GetElementFromPoint(Point) |
Recupera l'elemento HTML nella posizione indicata dalle coordinate client specificate. |
GetElementsByTagName(String) |
Recupera una raccolta di elementi con il tag HTML specificato. |
GetHashCode() |
Recupera il codice hash per questo oggetto. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
InvokeScript(String, Object[]) |
Esegue una funzione di scripting definita in una pagina HTML. |
InvokeScript(String) |
Esegue una funzione di scripting definita in una pagina HTML. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OpenNew(Boolean) |
Ottiene un nuovo oggetto HtmlDocument da usare con il metodo Write(String). |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Write(String) |
Scrive una nuova pagina HTML. |
Operatori
Equality(HtmlDocument, HtmlDocument) |
Restituisce un valore che indica se le istanze di HtmlDocument specificate rappresentano lo stesso valore. |
Inequality(HtmlDocument, HtmlDocument) |
Restituisce un valore che indica se le istanze di HtmlDocument specificate non rappresentano lo stesso valore. |
Eventi
Click |
Si verifica quando l'utente fa clic in un qualsiasi punto del documento. |
ContextMenuShowing |
Si verifica quando l'utente richiede la visualizzazione del menu contestuale del documento. |
Focusing |
Si verifica prima che lo stato attivo venga assegnato al documento. |
LosingFocus |
Si verifica quando un controllo sta perdendo lo stato attivo. |
MouseDown |
Si verifica quando l'utente fa clic con il pulsante sinistro del mouse. |
MouseLeave |
Si verifica quando il mouse non è più posizionato sul documento. |
MouseMove |
Si verifica quando il puntatore del mouse viene spostato sul documento. |
MouseOver |
Si verifica quando il puntatore del mouse viene spostato sul documento. |
MouseUp |
Si verifica quando l'utente rilascia il pulsante sinistro del mouse. |
Stop |
Si verifica quando la navigazione in un'altra pagina Web viene interrotta. |