2009-04-16 8 views
2

J'ai besoin d'insérer une barre de progression entre 2 formulaires, j'ai un formulaire principal quand je clique sur un bouton pour ouvrir une fenêtre j'ai besoin d'attendre avant de charger la dernière fenêtre ('cos télécharger sur le dernier formulaire) et je décide d'utiliser une barre de progression pour afficher le temps restant pour ouvrir la fenêtre demandée. Maintenant, je ne sais pas comment implémenter dans le code cette fonctionnalité (c'est la première fois que j'utilise une barre de progression). Avez-vous des conseils pour m'aider à développer cette fonctionnalité? Merci de votre attention.Barre de progression dans WinForms

P.S .Désolé de mon mauvais anglais

Répondre

6

Voici un exemple simple ....

Il n'y a que trois membres de la classe ProgressBar vous devriez connaître. Les propriétés Maximum, Minimum et Value.

Vous créez un contrôle de barre de progression à l'aide du constructeur ProgressBar.

this.progressBar1 = new System.WinForms.ProgressBar(); 

Après avoir créé instance d'une barre de progression vous réglez la plage de la barre de progression en utilisant minimum et maximum propriétés de la barre de progression.

progressBar1.Maximum = 200; 
progressBar1.Manimum=0; 

La propriété Step est utilisée pour définir le nombre de pas dans une barre de progression.

progressBar1.Step=20; 

La propriété Value est utilisée pour définir la valeur actuelle de la barre d'état.

protected void displayProgress (object sender, System.EventArgs e) 

{ 

    if (progressBar1.Value >= 200) 

    { 

     progressBar1.Value = 0; 

     return; 
    } 

    progressBar1.Value += 20; 

} 
5

Je vous recommande d'implémenter l'objet BackgroundWorker dans votre application Winforms. Ceci fournira une approche multithread facile pour faire quelque chose de traitement intensif sans verrouiller votre application. Vous pouvez l'utiliser en conjonction avec ProgressBar, ou vous pouvez même configurer votre propre indicateur de processus.

3

Si vous savez combien d'images la nouvelle fenêtre va télécharger, il est plutôt facile d'implémenter la barre de progression. Il suffit de déposer une barre de progression quelque part sur votre formulaire dans le concepteur de formulaire de Visual Studio. Maintenant, vous pouvez utiliser la barre de progression dans votre code comme suit:

MyProgressBar.Minimum = 0; 
MyProgressBar.Maximum = TotalPicturesToDownload; 

for (int i = 1; i<= TotalPicturesToDownload; i++) 
{ 
//Do whatever necessary to download picture nr i 
//.... 

//Update the progressBar 
MyProgressBar.Increment(1); 

} 

Comme déjà mentionné, il est conseillé de ne pas le faire dans le thread d'interface utilisateur, mais sur un thread séparé (utiliser par exemple un BackgroundWorker) sinon votre forme pourrait geler et faire de votre barre de progression de ne pas mettre à jour.

Questions connexes