Afficher progressbar [Résolu]

cs_Fabrice01 5 Messages postés mercredi 14 janvier 2004Date d'inscription 28 février 2012 Dernière intervention - 22 févr. 2012 à 16:33 - Dernière réponse : cs_Fabrice01 5 Messages postés mercredi 14 janvier 2004Date d'inscription 28 février 2012 Dernière intervention
- 28 févr. 2012 à 17:46
bonjour,
j'ai une appli qui lit un fichier, puis instancie des userControls suivant le resultat. Pendant ce temps je voudrais afficher une ProgressBar et bien sur afficher la progression.

        public void Lecture(string fileName)
        {
            ProgressCreate.Visibility = System.Windows.Visibility.Visible;

            LectureFichier(fileName);

            CreateControl();

            ProgressCreate.Visibility = System.Windows.Visibility.Hidden;
        }


la progressBar ne s'affiche jamais, j'ai l'impression qu'on attend la fin du traitement pour l'afficher, or à la fin je la passe en Hidden.
Comment puis-je faire ? Et comment dois-je la mettre à jour pendant la lecture du fichier et la création des userControls ?

fab
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_Fabrice01 5 Messages postés mercredi 14 janvier 2004Date d'inscription 28 février 2012 Dernière intervention - 28 févr. 2012 à 17:46
3
Merci
Ok ça marche avec le Backgroundworker. Je mets à jour avec le backgroundworker.ReportProgress().
Merci


fab

Merci cs_Fabrice01 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de cs_Fabrice01
cs_jopop 1540 Messages postés lundi 26 mai 2003Date d'inscription 1 août 2013 Dernière intervention - 22 févr. 2012 à 16:42
0
Merci
Salut,

je pense qu'il va falloir threader ta procedure pour que la barre de progression puisse avoir la main et s'afficher correctement (la classe Thread sur MSDN). Tu dois également pouvoir trouver des exemples/tuto sur ce site ;)

Bon dev
Commenter la réponse de cs_jopop
Whismeril 11955 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 20 août 2018 Dernière intervention - 22 févr. 2012 à 16:47
0
Merci
Bonjour,

en WinForm je te proposerais de faire un
Application.DoEvents();
toutes les x itérations.

Mais comme tu as posté dans une catégorie WPF, je ne sais pas si cela fonctionne.



Whismeril
Commenter la réponse de Whismeril
cs_Fabrice01 5 Messages postés mercredi 14 janvier 2004Date d'inscription 28 février 2012 Dernière intervention - 22 févr. 2012 à 17:24
0
Merci
Effectivement, je pensais threader ma procedure. Mais elle consiste en l'instanciation de userControls. Et je ne sais si je peux le faire en dehors de l'UI thread

fab
Commenter la réponse de cs_Fabrice01
cs_Fabrice01 5 Messages postés mercredi 14 janvier 2004Date d'inscription 28 février 2012 Dernière intervention - 24 févr. 2012 à 08:59
0
Merci
bon j'ai avancé. j'utilise un backgroundworker et dans l'evenement Do_Work je traite ma procedure. Lorsque je dois remettre à jour l'UI j'utilise le dispatcher comme ceci :

                Dispatcher.BeginInvoke((ThreadStart)delegate
                {
                    UserControlEssai userEssai = new UserControlEssai();

                    CanvasEssai.Children.Add(userEssai);

                }, null);


Par contre, comment faire pour passer des arguments ?

fab
Commenter la réponse de cs_Fabrice01
cs_louis14 788 Messages postés mardi 8 juillet 2003Date d'inscription 8 mars 2017 Dernière intervention - 28 févr. 2012 à 16:40
0
Merci
Bonjour,
Avec Backgroundworker tu peux gèrer la progression, va voir à cette adresse :
http://glarde.developpez.com/dotnet/bgworker/cs/#LIII.3



louis
Commenter la réponse de cs_louis14

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.