HtmlDocument Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece acesso programático de nível superior a um documento HTML hospedado pelo controle WebBrowser.
public ref class HtmlDocument sealed
public sealed class HtmlDocument
type HtmlDocument = class
Public NotInheritable Class HtmlDocument
- Herança
-
HtmlDocument
Exemplos
O exemplo de código a seguir usa dados do banco de dados Northwind para criar um HTML TABLE
dinamicamente usando CreateElement. O AppendChild método também é usado, primeiro para adicionar células (TD
elementos) a linhas (TR
elementos), depois para adicionar linhas à tabela e, por fim, para acrescentar a tabela ao final do documento atual. O exemplo de código requer que seu aplicativo tenha um WebBrowser controle chamado WebBrowser1
. O código deve ser chamado depois que um documento tiver sido carregado.
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
Comentários
HtmlDocument fornece um wrapper gerenciado em torno do objeto de documento do Internet Explorer, também conhecido como DOM (Modelo de Objeto de Documento HTML). Você obtém uma instância de HtmlDocument por meio da Document propriedade do WebBrowser controle .
As marcas HTML dentro de um documento HTML podem ser aninhadas entre si. HtmlDocument representa, portanto, uma árvore de documentos cujos filhos são instâncias da HtmlElement classe . O exemplo de código a seguir mostra um arquivo HTML simples.
<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>
Neste exemplo, HtmlDocument representa todo o documento dentro das HTML
marcas. As BODY
marcas , FORM
DIV
e SPAN
são representadas por objetos individuaisHtmlElement.
Há várias maneiras de acessar os elementos nesta árvore. Use a Body propriedade para acessar a BODY
marca e todos os seus filhos. A ActiveElement propriedade fornece o HtmlElement para o elemento em uma página HTML que tem o foco de entrada do usuário. Todos os elementos em uma página HTML podem ter um nome; a All coleção fornece acesso a cada HtmlElement um usando seu nome como um índice.
GetElementsByTagName retornará um HtmlElementCollection de todos os HtmlElement objetos com um determinado nome de marca HTML, como DIV
ou TABLE
.
GetElementById retornará o único HtmlElement correspondente à ID exclusiva que você fornecer.
GetElementFromPoint retornará o HtmlElement que pode ser encontrado na tela nas coordenadas de ponteiro do mouse fornecidas.
Você também pode usar a Forms coleção e Images para iterar por meio de elementos que representam formulários e elementos gráficos de entrada do usuário, respectivamente.
HtmlDocument se baseia nas interfaces não gerenciadas implementadas pelo DHTML DOM do Internet Explorer: IHTMLDocument
, IHTMLDocument2
, IHTMLDocument3
e IHTMLDocument4
. Somente as propriedades e métodos usados com mais frequência nessas interfaces não gerenciadas são expostos por HtmlDocument. Você pode acessar todas as outras propriedades e métodos diretamente usando a DomDocument propriedade , que pode ser convertida no ponteiro de interface não gerenciado desejado.
Um documento HTML pode conter quadros, que são janelas diferentes dentro do WebBrowser controle . Cada quadro exibe sua própria página HTML. A Frames coleção está disponível por meio da Window propriedade . Você também pode usar a Window propriedade para redimensionar a página exibida, rolar o documento ou exibir alertas e prompts para o usuário.
HtmlDocument expõe os eventos mais comuns que você esperaria manipular ao hospedar páginas HTML. Para eventos não expostos diretamente pela interface , você pode adicionar um manipulador para o evento usando AttachEventHandler.
Arquivos HTML podem conter SCRIPT
marcas que encapsulam o código escrito em uma das linguagens de Script Ativo, como JScript ou VBScript. O InvokeScript método fornece a execução de propriedades e métodos definidos em uma SCRIPT
marca.
Observação
Embora a maioria das propriedades, métodos e eventos em HtmlDocument tenham mantido os mesmos nomes que eles têm no DOM não gerenciado, alguns foram alterados para consistência com o .NET Framework.
Propriedades
ActiveElement |
Fornece o HtmlElement que tem o foco de entrada do usuário no momento. |
ActiveLinkColor |
Obtém ou define o Color de um hiperlink quando clicado por um usuário. |
All |
Obtém uma instância de HtmlElementCollection, que armazena todos os objetos HtmlElement para o documento. |
BackColor |
Obtém ou define a cor da tela de fundo do nó documento HTML. |
Body |
Obtém o HtmlElement para a marca |
Cookie |
Obtém ou define os cookies HTTP associados a esse documento. |
DefaultEncoding |
Obtém a codificação usada por padrão para o documento atual. |
Domain |
Obtém ou define a cadeia de caracteres que descreve o domínio deste documento para fins de segurança. |
DomDocument |
Obtém o ponteiro da interface não gerenciada para este HtmlDocument. |
Encoding |
Obtém ou define a codificação de caracteres desse documento. |
Focused |
Obtém um valor que indica se o documento tem foco de entrada do usuário. |
ForeColor |
Obtém ou define a cor do texto do documento. |
Forms |
Obtém uma coleção de todos os elementos |
Images |
Obtém uma coleção de todas as marcas de imagem no documento. |
LinkColor |
Obtém ou define a cor dos hiperlinks. |
Links |
Obtém uma lista de todos os hiperlinks neste documento HTML. |
RightToLeft |
Obtém ou define a direção do texto no documento atual. |
Title |
Obtém ou define o valor de texto da marca |
Url |
Obtém a URL que descreve o local deste documento. |
VisitedLinkColor |
Obtém ou define a cor dos links para páginas HTML que o usuário já visitou. |
Window |
Obtém o HtmlWindow associado a esse documento. |
Métodos
AttachEventHandler(String, EventHandler) |
Adiciona um manipulador de eventos para o evento HTML DOM nomeado. |
CreateElement(String) |
Cria um novo |
DetachEventHandler(String, EventHandler) |
Remove um manipulador de eventos de um evento nomeado no DOM HTML. |
Equals(Object) |
Testa o objeto quanto a igualdade em relação ao objeto atual. |
ExecCommand(String, Boolean, Object) |
Executa o comando especificado no documento. |
Focus() |
Define o foco de entrada do usuário no documento atual. |
GetElementById(String) |
Recupera um único HtmlElement usando o atributo |
GetElementFromPoint(Point) |
Recupera o elemento HTML localizado nas coordenadas de cliente especificadas. |
GetElementsByTagName(String) |
Recupera uma coleção de elementos com a marca HTML especificada. |
GetHashCode() |
Recupera o código hash para esse objeto. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
InvokeScript(String, Object[]) |
Executa uma função de script ativo definida em uma página HTML. |
InvokeScript(String) |
Executa uma função de script ativo definida em uma página HTML. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OpenNew(Boolean) |
Obtém um novo HtmlDocument a ser usado com o método Write(String). |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Write(String) |
Grava uma nova página HTML. |
Operadores
Equality(HtmlDocument, HtmlDocument) |
Retorna um valor que indica se as instâncias de HtmlDocument especificadas representam o mesmo valor. |
Inequality(HtmlDocument, HtmlDocument) |
Retorna um valor que indica se as instâncias de HtmlDocument especificadas não representam o mesmo valor. |
Eventos
Click |
Ocorre quando o usuário clica em qualquer lugar no documento. |
ContextMenuShowing |
Ocorre quando o usuário solicita para exibir o menu de contexto do documento. |
Focusing |
Ocorre antes do foco ser fornecido para o documento. |
LosingFocus |
Ocorre enquanto o foco está saindo de um controle. |
MouseDown |
Ocorre quando o usuário clica no botão esquerdo do mouse. |
MouseLeave |
Ocorre quando o cursor do mouse não está mais passando sobre o documento. |
MouseMove |
Ocorre quando o mouse é movido sobre o documento. |
MouseOver |
Ocorre quando o mouse é movido sobre o documento. |
MouseUp |
Ocorre quando o usuário libera o botão esquerdo do mouse. |
Stop |
Ocorre quando a navegação para outra página da Web é interrompida. |