Autor: tuenhai.com MSN: King#tuenhai.com
Declaração de direitos autorais: você pode reimprimir à vontade. Ao reimprimir, indique a fonte original do artigo, as informações do autor e esta declaração na forma de um hiperlink.
http://www.tuenhai.com/
Ferramentas de desenvolvimento: Microsoft Visual Studio .NET 2003
Sistema Operacional: Windows XP
Texto original: http://www.devx.com/vb2themax/tip/18798
Como outros controles, podemos usar o controle WebBrowser para criar aplicativos do formulário do Windows. Selecione o grupo de controle do formulário do Windows na caixa de ferramentas, clique em "Microsoft Web Browser" e use a ferramenta Aximp.exe em segundo plano para criar um controle ActiveX com o nome "Axwebrowser". No VB.NET, os componentes COM não podem ser usados diretamente. com são todos códigos não gerenciados. Se você usar esses componentes no VB.NET, deverá concluir a conversão do código não gerenciado para o código gerenciado.
Geralmente, você pode usar o controle original da WebBrowser, como o método de chamada, especificar propriedades, eventos de captura etc.
Algumas coisas não são tão simples. Queremos capturar eventos da página, como quando o usuário clicar em um elemento da página (como o plano de fundo), ele aciona o evento OnClick do elemento da página. Se o evento não for capturado, o nível DHTML deve ser atualizado até o nível mais alto do objeto de documento. Dessa forma, podemos capturar qualquer evento. No VB6, podemos simplesmente especificar webbrowser.document para mshtml.htmldocument com a palavra -chave Weevents.
No VB.NET, esse método simples não funciona mais. Como o controle ActiveX cria duas interfaces, o mesmo nome do método é usado em ambas as interfaces, resultando em um erro de tempo de execução. Portanto, você deve especificar a interface usada pelo objeto Document e criar um identificador de manuseio de eventos (hehe, tuenhai está bem traduzido).
Aqui está o código de amostra:
'IMPORTANTE: Este código assume que você adicionou uma referência ao
'Microsoft HTML Biblioteca de objetos Tipo de Biblioteca
Sub -Form1_load privado (Byval remetente como System.Object, _
byval e como System.Eventargs) lida com MyBase.Load
axwebrowser1.navigate ("http: //localhost/default.asp")
final sub
Sub axwebrowSer privado1_navigatecomplete2 (remetente Byval como objeto, _
ByVal E como axshdocvw.dwebbrowrowSevents2_navigatecicplete2Event) lida _
axwebrowser1.navigatecomplete2
'Deve esperar que este evento obtenha uma referência válida ao documento
' propriedade
Dim Doc como mshtml.htmldocument = Directcast (axwebbrowser1.document, _
mshtml.htmldocument)
'Elenco para a interface que define o evento em que você está interessado
Dim documentos como mshtml.htmldocumentEvents2_event = Directcast (doc, _
mshtml.htmldocumentEvents2_event)
'Defina um manipulador para o evento OnClick
AddHandler Documents.OnClick, Endereço de OnClickProc
final sub
'Observe que a assinatura deste evento é diferente de habitual, como
Espera -se que retorne um booleano - se false, o efeito padrão associado
'Com o evento (por exemplo, pulando para outra página se o clique estiver ativado
'Um hiperlink) é cancelado.
Função privada OnClickProc (Byval OBJ como mshtml.ihtmlleventobj) como booleano
'Um objeto na página foi clicado - você pode aprender mais sobre
'Tipo e posição deste objeto, consultando as propriedades do OBJ
'...
Função final
Nota do tradutor:
Esta é a primeira tradução de Tuenhai.
Minha experiência pessoal se beneficiou muito ao viajar em sites de design de programas no exterior nos últimos dias. Também pensei no "aprendizado do melhor" da aprendizagem de caligrafia. A maneira de ShareWare reside internacionalmente. Não é a mesma coisa ao aprender o design de software? Como os recursos internacionais de aprendizagem se comparam aos recursos de aprendizagem doméstica?
O inglês não é de forma alguma um obstáculo. Tuenhai não acredita que o inglês dele seja melhor do que você. O básico da Junior High School, além de Kingsoft Powerwords, é suficiente.