J'écris une application C# pour télécharger et télécharger un fichier. Le téléchargement utilise l'objet WebClient et sa méthode DownloadAsycDownload
. Le téléchargement fonctionne correctement pour plusieurs fichiers. Il télécharge autant de fichiers que je veux.C# Plusieurs barres de progression pour plusieurs téléchargements de fichiers
Mon problème est que je ne suis pas en mesure d'afficher la progression de tous les fichiers dans différentes barres de progression qui sont ajoutées dynamiquement au formulaire flowlayout control
.
Voici mon code:
public ProgressBar[] bar;
public int countBar=0;
...
bar[countBar] = new ProgressBar();
flowLayoutPanel1.Controls.Add(bar[countBar]);
countBar++;
request.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownoadInProgress);
request.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted);
request.DownloadFileAsync(new Uri(this.uri), localPath);
byte[] fileData = request.DownloadData(this.uri);
FileStream file = File.Create(localPath);
file.Write(fileData, 0, fileData.Length);
file.Close();
}
public void DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
flowLayoutPanel1.Controls.Remove(bar[countBar]);
countBar--;
MessageBox.Show("Download Completed");
}
public void DownoadInProgress(object sender, DownloadProgressChangedEventArgs e)
{
bar[countBar].Maximum = total_bytes;
bar[countBar].Value = (int)e.BytesReceived;
}
Merci, c'était très utile. – Habtamu
Si cela vous a entièrement aidé, marquez comme réponse acceptée. Sinon, laissez-moi savoir ce qui manque. – SimpleVar
J'essaie d'ajouter les composants d'une autre classe. Ne pas obtenir la barre de progression ajoutée au formulaire lors de l'exécution. Ces méthodes que j'ai postées sont dans une autre classe. – Habtamu