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 programmatico di primo livello a un documento HTML ospitato dal WebBrowser controllo .
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 AppendChild inoltre utilizzato il 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 abbia 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 intorno all'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 di documenti, 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 BODYtag , FORMDIVe 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 oggetto HtmlElementCollection 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 moduli di input utente e grafica.
HtmlDocument si basa sulle interfacce non gestite implementate dal DOM DHTML di Internet Explorer: IHTMLDocument, IHTMLDocument2, IHTMLDocument3e 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. L'insieme Frames è 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 ci si aspetta di gestire quando si ospitano 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 attivi, ad esempio JScript o VBScript. Il InvokeScript metodo fornisce l'esecuzione di proprietà e metodi definiti in un SCRIPT tag.
Annotazioni
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à
| Nome | Descrizione |
|---|---|
| ActiveElement |
Fornisce l'oggetto HtmlElement che attualmente ha lo stato attivo per l'input dell'utente. |
| ActiveLinkColor |
Ottiene o imposta l'oggetto Color di un collegamento ipertestuale quando si fa clic su un utente. |
| All |
Ottiene un'istanza di HtmlElementCollection, che archivia tutti gli HtmlElement oggetti 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. |
| DefaultEncoding |
Ottiene la codifica utilizzata per impostazione predefinita per il documento corrente. |
| Domain |
Ottiene o imposta la stringa che descrive il dominio di questo documento a scopo di sicurezza. |
| DomDocument |
Ottiene il puntatore dell'interfaccia non gestito per l'oggetto HtmlDocument. |
| Encoding |
Ottiene o imposta la codifica dei caratteri per questo documento. |
| Focused |
Ottiene un valore che indica se il documento ha lo stato attivo per l'input dell'utente. |
| ForeColor |
Ottiene o imposta il colore del testo per il 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 all'interno del documento HTML. |
| 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 il percorso del documento. |
| VisitedLinkColor |
Ottiene o imposta il colore dei collegamenti alle pagine HTML già visitate dall'utente. |
| Window |
Ottiene l'oggetto HtmlWindow associato a questo documento. |
Metodi
| Nome | Descrizione |
|---|---|
| AttachEventHandler(String, EventHandler) |
Aggiunge un gestore eventi per l'evento DOM HTML denominato. |
| CreateElement(String) |
Crea un nuovo |
| DetachEventHandler(String, EventHandler) |
Rimuove un gestore eventi da un evento denominato nel DOM HTML. |
| Equals(Object) |
Verifica l'uguaglianza dell'oggetto rispetto all'oggetto corrente. |
| ExecCommand(String, Boolean, Object) |
Esegue il comando specificato sul documento. |
| Focus() |
Imposta lo stato attivo dell'input utente sul documento corrente. |
| GetElementById(String) |
Recupera un singolo HtmlElement oggetto utilizzando l'attributo dell'elemento come chiave di |
| GetElementFromPoint(Point) |
Recupera l'elemento HTML che si trova in corrispondenza delle coordinate client specificate. |
| GetElementsByTagName(String) |
Recuperare una raccolta di elementi con il tag HTML specificato. |
| GetHashCode() |
Recupera il codice hash per questo oggetto. |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| InvokeScript(String, Object[]) |
Esegue una funzione di scripting attivo definita in una pagina HTML. |
| InvokeScript(String) |
Esegue una funzione di scripting attivo definita in una pagina HTML. |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| OpenNew(Boolean) |
Ottiene un nuovo HtmlDocument oggetto da utilizzare con il Write(String) metodo . |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| Write(String) |
Scrive una nuova pagina HTML. |
Operatori
| Nome | Descrizione |
|---|---|
| Equality(HtmlDocument, HtmlDocument) |
Restituisce un valore che indica se le istanze specificate HtmlDocument rappresentano lo stesso valore. |
| Inequality(HtmlDocument, HtmlDocument) |
Restituisce un valore che indica se le istanze specificate HtmlDocument non rappresentano lo stesso valore. |
Eventi
| Nome | Descrizione |
|---|---|
| Click |
Si verifica quando l'utente fa clic in un punto qualsiasi del documento. |
| ContextMenuShowing |
Si verifica quando l'utente richiede di visualizzare il menu di scelta rapida del documento. |
| Focusing |
Si verifica prima che lo stato attivo venga assegnato al documento. |
| LosingFocus |
Si verifica quando lo stato attivo lascia un controllo. |
| MouseDown |
Si verifica quando l'utente fa clic sul pulsante sinistro del mouse. |
| MouseLeave |
Si verifica quando il mouse non viene più posizionato sul documento. |
| MouseMove |
Si verifica quando il mouse viene spostato sul documento. |
| MouseOver |
Si verifica quando il mouse viene spostato sul documento. |
| MouseUp |
Si verifica quando l'utente rilascia il pulsante sinistro del mouse. |
| Stop |
Si verifica quando lo spostamento su un'altra pagina Web viene interrotto. |