Desencadenar acción desde un documento HTML
-
viernes, 13 de abril de 2012 19:18
Hola, necesito conseguir que al cliquear en un vínculo o botón de comando colocado en una página web que visualizo mediante un webbrowser, pueda mediante vb.net conseguir el nombre el botón o enlace y realizar una acción en el formulario que contiene dichos componentes, hasta el momento no he podido conseguir mucho y no tengo muchas ideas.
Gracias de antemano!
Todas las respuestas
-
viernes, 13 de abril de 2012 19:44Moderador
hola
deberias aplicar el mismo concepto mencionado aqui
http://social.msdn.microsoft.com/Forums/pl-PL/wpf/thread/a4f0e4d0-78bf-44c5-a3fe-8faf2e7a0568
como veras en el complete del webbrowser adjuntas el evento onclick
para eso recorrer cada link del documento en la ultima linea usa
AddHandler handler.onclick, AddressOf NombreMetodo
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta julian_mdq sábado, 14 de abril de 2012 12:21
-
viernes, 13 de abril de 2012 23:06Leandro, no me funciona correctamente, puede ser porque el evento Complete no se desencadene porque el link hace referencia a un lugar del mismo documento?. Gracias!
-
sábado, 14 de abril de 2012 1:10Moderador
primero debes cvalidar que el complete se ejecute sino no se esta cargando el documento
una vez cargado es que buscas los links dentro del DOM del HTML y te adjuntas al evento click
puedes suar breakpoint para validar si los eventos se producen
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
sábado, 14 de abril de 2012 9:41
Estaba perfecto todo lo que planteabas Leandro, sucede que mi código en VB tiene varios errores y había deshabilitado líneas y por eso no funcionaba correctamente. Pego a continuación como quedo:
Dim doc As mshtml.HTMLDocumentClass = DirectCast(WebBrowser1.Document, mshtml.HTMLDocumentClass)
En la primer línea ya me muestra el error Un valor de tipo 'System.Windows.Forms.HtmlDocument' no se puede convertir en 'mshtml.HTMLDocumentClass'.
For Each link As HtmlElement In doc.links
Dim anchor As HTMLAnchorElement = TryCast(link, HTMLAnchorElement)
If anchor IsNot Nothing Then
Dim handler As HTMLAnchorEvents_Event = TryCast(anchor, HTMLAnchorEvents_Event)
'Public Event onclick() As Boolean' es un evento y no se puede llamar directamente. Utilice la instrucción RaiseEvent para provocar un evento.
If handler IsNot Nothing Then
handler.onclick += New HTMLAnchorEvents_onclickEventHandler(Function() DoAddHandler handler.onclick, AddressOf anchor.href & "_click"
Return True
End Function)
End If
End If
NextLo que más me complico es que hay mucha documentación de este tema, pero casi el 100% en C#.
Mil gracias!
- Editado julian_mdq sábado, 14 de abril de 2012 10:49

