Fecha de publicación: 17/05/2017
Con el control Webbrowser tenemos un grave problema a la hora de establecer el foco en el control, ya que por mucho que le establezcamos la función de Setfocus, obvía por completo la instrucción. La única forma que hay de que el control reciba el foco y poder navegar por el contenido del Webbrowser es haciendo click sobre el objeto y esto como comprenderéis es muy patatero.
Pues bien, he ideado una solución para acabar con este grave error y os lo expondré siguiendo estos pasos a realizar:
1) Tenemos que incluir la referencia Microsoft HTML Object Library. Ya sabéis, nos vamos al menú Proyecto -> Referencias y la incluimos.
2) Creamos un Formulario e insertamos un control Webbrowser
3) Pegamos este código en el formulario:
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Private Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
Private WithEvents objDocument As HTMLDocument
Private clickado As Boolean
Private Sub Form_Activate()
clickado = False
End Sub
Private Sub Form_Load()
clickado = False
WebBrowser1.Navigate2 App.Path & "\prueba.html"
End Sub
Private Sub Form_Resize()
On Error Resume Next
WebBrowser1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
On Error GoTo 0
End Sub
Private Sub clickar()
On Error GoTo erro1
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
clickado = True
erro1:
End Sub
Private Sub objDocument_onmousemove()
If clickado = False Then
clickar
End If
End Sub
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Set objDocument = WebBrowser1.Document
End Sub
En Webbrowser1.Navigate2 pondremos nuestra página que deseemos cargar
DESCARGAR WEBBROWSER.zip(682 descargas)