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 WebBrowser controle.
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 uso CreateElementdinâmico. 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, 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 por HtmlDocument 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 BODYmarcas e SPAN as DIVFORM marcas 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 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ê fornece.
GetElementFromPoint retornará o HtmlElement que pode ser encontrado na tela nas coordenadas de ponteiro do mouse fornecidas.
Você também pode usar a coleção e Images a Forms coleção para iterar por meio de elementos que representam formulários de entrada do usuário e elementos gráficos, respectivamente.
HtmlDocumentse baseia nas interfaces não gerenciadas implementadas pelo DHTML DOM do Internet Explorer: IHTMLDocument, , IHTMLDocument2e IHTMLDocument3IHTMLDocument4. 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 você pode converter para o 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.
Os arquivos HTML podem conter marcas que encapsulam SCRIPT 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
| Nome | Description |
|---|---|
| ActiveElement |
Fornece o que atualmente tem o HtmlElement foco de entrada do usuário. |
| 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 HtmlElement objetos para o documento. |
| BackColor |
Obtém ou define a cor da tela de fundo do documento HTML. |
| Body |
Obtém a HtmlElement marca para a |
| Cookie |
Obtém ou define os cookies HTTP associados a este 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 de interface não gerenciado para isso HtmlDocument. |
| Encoding |
Obtém ou define a codificação de caracteres para este documento. |
| Focused |
Obtém um valor que indica se o documento tem o 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 |
| 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 |
| 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 este documento. |
Métodos
| Nome | Description |
|---|---|
| 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 à 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 do |
| GetElementFromPoint(Point) |
Recupera o elemento HTML localizado nas coordenadas do cliente especificadas. |
| GetElementsByTagName(String) |
Recupere uma coleção de elementos com a marca HTML especificada. |
| GetHashCode() |
Recupera o código hash deste 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 Objectatual. (Herdado de Object) |
| OpenNew(Boolean) |
Obtém um novo HtmlDocument para usar com o Write(String) método. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| Write(String) |
Grava uma nova página HTML. |
Operadores
| Nome | Description |
|---|---|
| Equality(HtmlDocument, HtmlDocument) |
Retorna um valor que indica se as instâncias especificadas HtmlDocument representam o mesmo valor. |
| Inequality(HtmlDocument, HtmlDocument) |
Retorna um valor que indica se as instâncias especificadas HtmlDocument não representam o mesmo valor. |
Eventos
| Nome | Description |
|---|---|
| Click |
Ocorre quando o usuário clica em qualquer lugar no documento. |
| ContextMenuShowing |
Ocorre quando o usuário solicita a exibição do menu de contexto do documento. |
| Focusing |
Ocorre antes que o foco seja dado ao documento. |
| LosingFocus |
Ocorre enquanto o foco está deixando um controle. |
| MouseDown |
Ocorre quando o usuário clica no botão esquerdo do mouse. |
| MouseLeave |
Ocorre quando o mouse não está mais pairando 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. |