Ciao a tutti, sto usando il componente WebBrowser e uso l'evento DocumentCompleted per stabilire se la pagina è stata completamente caricata.
Dove ElaboraPagina() è una Sub che fa alcuni controlli sulla pagina caricata...codice:Private Sub wb_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted ElaboraPagina() End Sub
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:
oppure fare il controllo direttamente nell'evento DocumentCompleted:codice:Private Sub ElaboraPagina() Do While wb.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() Loop ....ulteriore codice.... End Sub
Quale metodo sarebbe preferibile usare?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
Grazie

Rispondi quotando