IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#/ProgressBar] Comment rendre l'affichage permanent ?


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Par défaut [C#/ProgressBar] Comment rendre l'affichage permanent ?
    Dans mon prog, j'utilise un ProgressBar.

    Pendant que mon programme tourne, si je fais autre chose sous windows lorsque je reviens sur mon prog j'ai le droit au sablier, la fenêtre est blanche et je ne vois pas défiler mon ProgressBar.

    Comment faire pour résoudre ce problème ?

    Merci.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Utilise un Thread différent pour faire avancer ton progressebar


    A+

  3. #3
    Membre éclairé
    Avatar de irnbru
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2004
    Messages : 316
    Billets dans le blog
    1
    Par défaut
    Oui il faudrait lancer un thread secondaire (worker thread) pour ta longue tâche. Il faut par contre mettre à jour la barre de progression dans le thread principal (à savoir celui qui a lancé ton application). J'espère que tu n'es pas débutant...

    IRNBRU

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Par défaut
    Je ne suis pas débutant, même si je suis sur le retour.
    Je n'ai pas oeuvré jusqu'à présent des thread.

    Votre idée est interressante, je vais me pencher dessus.
    J'aurais préféré gérer la tache dans le thread principal, et le progressBar dans le thread secondaire. Je verrais bien ...

    Merci pour les réponses.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 20
    Par défaut
    Finalement j'utilise progressBar.Refresh et ca marche très bien.

  6. #6
    Nouveau candidat au Club
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Par défaut
    Salut,

    Je suis tombé sur ces posts en faisant des recherches sur le net.
    Mon problème se rapproche de celui de "daveg".

    J'ai une winForm qui sert a lancer des requêtes (parfois trés longues) sur un SQL server:
    -Click sur un boutton => Lancement d'un thread secondaire qui effectue l'accés aux données et rempli un dataset, avec plusieurs requetes
    -Une fois le thread terminé, le dataset résultant est affiché dans un datagrid

    Ceci marche bien, mais parcontre la progressbar qui permet d'afficher l'avancement de la requête pose problème.
    Son fonctionement est le suivant:
    -La progressbar à la proprièté " Visible" a False par défaut.
    -Lors du démarage d'un requête donc du thread secondaire la progress bar est rendu visible.
    -Une boucle d'itération permet de faire augmanter la progressbar(PerformStep()) aprés chaque requêtes.

    Ceci marche bien si la fençetre de l'appli garde le focus.
    Par contre si on la "Minimize" puis "Maximize" la fenêtre, la progressbar est figé et affiche du blanc jusqu'a ce qu'un perform step soit executé.
    J'ai essayé le progressbar.Refresh sur l'evenement focus de ma form mais ca ne marche pas .

    Si vous avez une idée merci d'avance!!

  7. #7
    Membre actif
    Profil pro
    Chef projet
    Inscrit en
    Novembre 2002
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef projet

    Informations forums :
    Inscription : Novembre 2002
    Messages : 20
    Par défaut
    au risque de me faire conspuer, en vbnet dans la boucle de progression
    je tape la ligne de code:
    application.doevents (qui permet au systeme de mettre à jour l'affichage)

    n'y -t-il pas l'équivalent en C#?

    Humblement

  8. #8
    Nouveau candidat au Club
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Par défaut
    Salut,
    J'utilise vb.net...en effet le application.DoEvent() permet de garder le contrôle sur la forme principale pendant l'execution du thread secondaire.
    Par contre ca a pas d'effet sur la progressbar, ...je laisse tombé cette solution au profit d'une progress bar cyclique (type démarage windows) qui malheureusement ne donne aucun renseignementsur l'avancement de la tâche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/11/2007, 12h31
  2. Réponses: 2
    Dernier message: 04/08/2006, 10h20
  3. Comment rendre invisible un TTabbedNotebook.Pages ?
    Par Chonchon dans le forum Composants VCL
    Réponses: 2
    Dernier message: 14/04/2004, 20h14
  4. comment rendre invisible une FormStyle->fsMDIchild
    Par caluloa dans le forum C++Builder
    Réponses: 5
    Dernier message: 16/05/2003, 14h21
  5. Comment rendre transparent le tour d un icone
    Par NeoRonin dans le forum Composants VCL
    Réponses: 7
    Dernier message: 03/03/2003, 01h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo