progress bar zeigt nicht richtig an

theplake

Erfahrenes Mitglied
Hi Leute
Ich lade via Webclient eine datei runter.Alles gut soweit nur die Prozent anzeige springt von 0 direkt auf 100 wieso?

Hier der Code:
Code:
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
                {
                   
                        WebClient ^myClient = gcnew WebClient();
                        myClient->Credentials = gcnew NetworkCredential("username","passwort"); //username and password
                        Uri ^url = gcnew Uri("ftp://ftp.meineseite.de/test.zip");
                        String ^file = "test.zip";

                        myClient->DownloadProgressChanged += gcnew DownloadProgressChangedEventHandler(this, &Form1::s_DownloadProgressChanged);

                        myClient->DownloadFileCompleted += gcnew AsyncCompletedEventHandler(this, &Form1::DownloadFileCompleted);
                       
                        myClient->DownloadFileAsync(url, file);
                       
               
             }
   

             
    private:         System::Void s_DownloadProgressChanged(System::Object^ sender, System::Net::DownloadProgressChangedEventArgs^ e)
                    {
                        this->progressBar1->Maximum = 100;
                        progressBar1->Value = e->ProgressPercentage;
                        this->label1->Text = e->ProgressPercentage.ToString() + "%";//
                        this->label2->Text = e->ProgressPercentage.ToString();
                        //progressBar1->Update();
                           
                     }

        private:     System::Void DownloadFileCompleted(System::Object^ sender, System::ComponentModel::AsyncCompletedEventArgs^ e)
                    {
                        MessageBox::Show("Download Completed");
                    }
 
Zuletzt bearbeitet:
Also ich weiß jetzt nicht so wie es bei Microsofts "tollem" Visual C++ ist, aber in der Regel musst du die Datei in einem extra Thread runterladen, da sonst die GUI blockiert, dadurch springt die Fortschrittsanzeige gleich auf hundert wenn die datei fertig runtergeladen ist. Wenn du den Download in einen Thread ausgelagert hast musst du daruas die fortschrittsanzeige steuern, dann müsste es klappen.

Gruß
cesupa
 
Zurück