Respondida 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:44
    Moderador
     
     Respondida

    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

    Convert C# to VB.NET

    Code Converter

    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:06
     
     
    Leandro, 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:10
    Moderador
     
     

    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)
                    If handler IsNot Nothing Then
    handler.onclick += New HTMLAnchorEvents_onclickEventHandler(Function() Do    

    'Public Event onclick() As Boolean' es un evento y no se puede llamar directamente. Utilice la instrucción RaiseEvent para provocar un evento.

                        AddHandler handler.onclick, AddressOf anchor.href & "_click"
                        Return True
    End Function)
    End If
    End If
    Next

    Lo 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
    •