Progressbar mit Net.WebClient

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von xtts02.

    Progressbar mit Net.WebClient

    VB.NET-Quellcode

    1. TextBox1.Text = New Net.WebClient().DownloadString("http://www.link.net/client/link1.txt")
    2. TextBox2.Text = New Net.WebClient().DownloadString("http://www.link.net/client/prozess1.txt")
    3. TextBox3.Text = New Net.WebClient().DownloadString("http://www.link.net/client/dll1.txt")
    4. Dim dateiPfad As String = My.Computer.FileSystem.SpecialDirectories.Temp & "/" & TextBox3.Text
    5. Dim internetPfad As String = TextBox1.Text
    6. Dim client As New System.Net.WebClient
    7. client.DownloadFile(internetPfad, dateiPfad)


    Ich habe eine frage kann ich das mit der Progressbar verbinden ?

    VB.NET-Quellcode

    1. Friend WithEvents MyWebClient As New Net.WebClient
    2. Private Sub MyWebClient_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles MyWebClient.DownloadProgressChanged
    3. Form2.ProgressBar1.Value = e.ProgressPercentage
    4. End Sub



    Nur warum wird mir nix angezeigt auf der progressbar wo liegt mein fehler?
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. TextBox1.Text = New Net.WebClient().DownloadString("http://www.link.net/client/link1.txt")
    3. TextBox2.Text = New Net.WebClient().DownloadString("http://www.blabla/client/prozess1.txt")
    4. TextBox3.Text = New Net.WebClient().DownloadString("http://www.blabl.net/client/dll1.txt")
    5. Dim dateiPfad As String = My.Computer.FileSystem.SpecialDirectories.Temp & "/" & TextBox3.Text
    6. Dim internetPfad As String = TextBox1.Text
    7. Dim client As New System.Net.WebClient
    8. client.DownloadFile(internetPfad, dateiPfad)
    9. Timer1.Interval = 50
    10. Timer1.Start()
    11. End Sub
    12. End Class


    Und
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class test1
    2. Friend WithEvents MyWebClient As New Net.WebClient
    3. Private Sub MyWebClient_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles MyWebClient.DownloadProgressChanged
    4. Form2.ProgressBar1.Value = e.ProgressPercentage
    5. End Sub


    nur was mache ich falsch ja ich habe getestet .
    Auch mit ASync würde es nicht funktionieren weil er immernoch die WebClients neu Instanziert

    VB.NET-Quellcode

    1. Dim client As New System.Net.WebClient
    2. client.DownloadFile(internetPfad, dateiPfad)


    Du hast doch nun eine Instanz des WebClients mit Namen MyWebClient dann nutze den gefälligst auch für den Download. Es muss natürlich ein Bezug zu der Instanz sein damit das Event auch gerised werden kann.

    Dodo schrieb:

    weil er immernoch die WebClients neu Instanziert

    Mit AddHandler ist doch kein Problem.

    VB.NET-Quellcode

    1. Private _RemoteFile As String = "http://mirror.ox.ac.uk/sites/releases.ubuntu.com/releases//maverick/ubuntu-10.10-desktop-i386.iso"
    2. Private _LocalFile As String = "c:\temp\ubuntu32.iso"
    3. Private Sub DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
    4. ProgressBar1.Value = 0
    5. Label1.Text = String.Empty
    6. If e.Cancelled Then
    7. MessageBox.Show("Download wurde abgebrochen.", "Download", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    8. Else
    9. MessageBox.Show("Download erfolgreich abgeschlossen", "Download", MessageBoxButtons.OK, MessageBoxIcon.Information)
    10. End If
    11. End Sub
    12. Private Sub DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
    13. ProgressBar1.Value = e.ProgressPercentage
    14. Label1.Text = e.BytesReceived.ToString("0,0") & " Byte(s) von " & e.TotalBytesToReceive.ToString("0,0") & " Bytes heruntergeladen. - (" & (e.BytesReceived / e.TotalBytesToReceive).ToString("P") & ")"
    15. End Sub
    16. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    17. Dim myClient As New Net.WebClient
    18. AddHandler myClient.DownloadFileCompleted, AddressOf Me.DownloadFileCompleted
    19. AddHandler myClient.DownloadProgressChanged, AddressOf Me.DownloadProgressChanged
    20. myClient.DownloadFileAsync(New Uri(_RemoteFile), _LocalFile)
    21. End Sub