Autor: Tuenhai.com MSN: King#TUenhai.com
Declaración de derechos de autor: puedes reimprimirlo a voluntad. Al reimprimir, asegúrese de indicar la fuente original del artículo, la información del autor y esta declaración en forma de hipervínculo.
http://www.tuenhai.com/
Herramientas de desarrollo: Microsoft Visual Studio .NET 2003
Sistema operativo: Windows XP
Texto original: http://www.devx.com/vb2themax/tip/18798
Al igual que otros controles, podemos usar el control WebBrowser para crear aplicaciones de formulario de Windows. Seleccione el grupo de control de formulario de Windows en la caja de herramientas, haga clic en "Browser web de Microsoft" y use la herramienta Aximp.exe en el fondo para crear un control ActiveX con el nombre "Axwebrowser". En VB.NET, los componentes COM no se pueden usar directamente. com son todos los códigos no administrados. Si usa estos componentes en VB.NET, debe completar la conversión del código no administrado al código administrado.
En general, puede usar el control original de WebBrowser, como el método de llamadas, especificar propiedades, capturar eventos, etc.
Algunas cosas no son tan simples. Queremos capturar eventos de página, como cuando el usuario hace clic en un elemento de página (como el fondo), desencadena el evento Onclick del elemento de página. Si el evento no se atrapa, el nivel DHTML debe actualizarse hasta el nivel más alto del objeto de documento. De esta manera, podemos capturar cualquier evento. En VB6, simplemente podemos especificar webbrowser.document a mshtml.htmlDocument con la palabra clave WithEvents.
En VB.NET, este método simple ya no funciona. Debido a que el control ActiveX crea dos interfaces, el mismo nombre del método se usa en ambas interfaces, lo que resulta en un error de tiempo de ejecución. Por lo tanto, debe especificar la interfaz utilizada por el objeto de documento y crear un mango de manejo de eventos (jeje, Tuenhai está bien traducido).
Aquí está el código de muestra:
'Importante: este código supone que ha agregado una referencia al
'Biblioteca de tipo de biblioteca de objetos de Microsoft HTML
Sub form1_load privado (remitente Byval como System.Object, _
Byval E como System.Eventargs) Maneja mybase.load
axwebrowser1.navigate ("http: //localhost/default.asp")
final
Sub axwebrowser privado1_navigateComplete2 (remitente Byval como objeto, _
byval e como axshdocvw.dwebbrowserevents2_navigateComplete2Event) maneja _
axwebrowser1.navigateComplete2
'Debe esperar a que este evento obtenga una referencia válida al documento
' propiedad
Dim Doc como mshtml.htmlDocument = directcast (axwebbrowser1.document, _
mshtml.htmlDocument)
'Elegir a la interfaz que define el evento que le interesa
Dim documentos como mshtml.htmlDocumentEvents2_event = directcast (doc, _
mshtml.htmlDocumentEvents2_event)
'Defina un controlador para el evento OnClick
AddHandler Documents.enclick, Dirección de OnClickProc
final
'Observe que la firma de este evento es diferente de lo habitual, ya que
se espera que devuelva un booleano: si es falso el efecto predeterminado asociado
'Con el evento (por ejemplo, saltar a otra página si el clic está en
'Un hipervínculo) se cancela.
función privada onClickProc (byval obj como mshtml.ihtmlleventobj) como booleano
'Se ha hecho clic en un objeto en la página: puede obtener más información sobre
'Tipo y posición de este objeto consultando las propiedades del OBJ
'...
función final
Nota del traductor:
Esta es la primera traducción de Tuenhai.
Mi experiencia personal se ha beneficiado mucho de viajar en los sitios web de diseño de programas en el extranjero en los últimos días. También pensé en el "aprendizaje de lo mejor" de aprendizaje de caligrafía. La forma de Shareware radica en ir internacionalmente. ¿No es esto lo mismo cuando se aprende el diseño de software? ¿Cómo se comparan los recursos de aprendizaje internacional con los recursos de aprendizaje nacional?
El inglés de ninguna manera es un obstáculo. Tuenhai no cree que su inglés sea mejor que tú. Los conceptos básicos de la escuela secundaria, además de Kingsoft Powerwords, es suficiente.