Event Completed bei WebBrowser

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Memo.

    Event Completed bei WebBrowser

    Hallo,
    ich hab ne richtige Anfängerfrage.

    Ich lasse meinen WebBrowser1 eine Seite Laden. Wenn die Fertig geladen ist, soll es erst weiter gehen.
    Jetzt gibt es ja das Event dafür:

    VB.NET-Quellcode

    1. Private Sub WebBrowser1_DocumentCompleted1(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted


    Doch wie setze ich das jetzt genau ein?

    Danke
    Danke für die Antwort.
    Doch da gibts ein Problem.


    Beispiel:

    For each link in Linkliste

    Webbrowser.Navigate(link)

    Next


    Sub Event Doc COmpleted
    Msgbox("Fertig geladen")
    End Sub


    Hier werden dann erst alle Seiten durch geladen. Es soll aber bei jeder Seite gewartet werden, bis sie geladen ist und dann soll die Msgbox kommen.
    Hallo SenA,

    in etwa so

    VB.NET-Quellcode

    1. For each link in Linkliste
    2. Dim wb As New Webbrowser
    3. AddHandler wb.DocumentCompleted, AddressOf DocCompleted
    4. wb.Navigate(link)
    5. Next
    6. Sub Event DocCompleted(sender As Object, e As .....Args)
    7. Msgbox("Fertig geladen")
    8. End Sub


    Gruss

    mikeb69
    Man könnte einen ListBox für die Verwaltung der Links missbrachen:

    VB.NET-Quellcode

    1. Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    2. MessageBox.Show(e.Url.ToString & " fertig geladen.")
    3. With ListBox1
    4. If .SelectedIndex < .Items.Count - 1 Then
    5. MessageBox.Show("Nächste URL wird geladen ...")
    6. .SelectedIndex += 1
    7. Else
    8. MessageBox.Show("Liste zu Ende.")
    9. End If
    10. End With
    11. End Sub
    12. Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    13. WebBrowser1.Navigate(ListBox1.SelectedItem.ToString)
    14. End Sub

    VB.NET-Quellcode

    1. Private Sub Open()
    2. For Each link In Linklist
    3. Try
    4. wb.Navigate(link)
    5. 'bevor die schleife sich wiederholt und ein neuer Link geladen wird, soll die Seite fertiggeladen sein
    6. Catch ex As Exception
    7. MsgBox(ex.Message)
    8. End Try
    9. Next
    10. End Sub



    VB.NET-Quellcode

    1. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles
    2. WebBrowser1.DocumentCompleted
    3. ClickWebsiteButton()
    4. ClickWebsiteButton2()
    5. 'wenn die erste Sub geklickt haben sollte, wird ja die Seite aktualisiert, erst wenn fertiggeladen, soll zweite Sub klicken
    6. 'außerdem wurde hier eine Endlosschleife gebaut, ist die Seite aktualisiert duch den Buttonklick in der ersten Sub, wird das Event wieder aufgerufen.
    7. ' Click2 wird nie ausgeführt
    8. End Sub


    Das ist der aktuelle Stand. Es soll in der Reihenfolge: Seite geladen werden - Button geklickt - Fertig Laden - Button2 geklickt - Fertig Laden dann das nächste Element bzw nächster Link
    Also Ich würds so machen:


    VB.NET-Quellcode

    1. Puplic LinkListe as New ListOf(String)
    2. Puplic sCount as Integer = 0
    3. LinkListe.Add("www.google.de")
    4. LinkListe.Add("www.yahoo.de")
    5. LinkListe.Add("www.bing.de")
    6. LinkListe.Add("www.youtube.de")
    7. LinkListe.Add("www.vbparadise.de")
    8. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    9. If Not sCount = 4 then
    10. sCount = sCount + 1
    11. Webbrowser1.Navigate(Linkliste.Item(sCount).ToString)
    12. End If
    13. End Sub


    In gang setzten tust du, indem du zu den ersten Link navigierst:

    VB.NET-Quellcode

    1. Webbrowser1.Navigate("iwas")




    Grüße