Ciao a tutti, sto usando il componente WebBrowser e uso l'evento DocumentCompleted per stabilire se la pagina è stata completamente caricata.
codice:
Private Sub wb_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted
ElaboraPagina()
End Sub
Dove ElaboraPagina() è una Sub che fa alcuni controlli sulla pagina caricata...
Documentandomi in rete, ho scoperto che l'evento DocumentCompleted potrebbe scatenarsi più volte prima che il documento sia effettivamente caricato completamente.
A questo punto ci sono diverse soluzioni, o fare un ciclo di attesa:
codice:
Private Sub ElaboraPagina()
Do While wb.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
Loop
....ulteriore codice....
End Sub
oppure fare il controllo direttamente nell'evento DocumentCompleted:
codice:
Private Sub wb_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted
If Me.wb.ReadyState = WebBrowserReadyState.Complete Then
ElaboraPagina()
End If
End Sub
Quale metodo sarebbe preferibile usare?
Grazie