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 :

Barre de progression jamais mise à jour avec un délégué


Sujet :

Windows Forms

  1. #1
    Membre habitué Avatar de CLeBeR
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 412
    Points : 188
    Points
    188
    Par défaut Barre de progression jamais mise à jour avec un délégué
    Bonjour,
    J'appelle dans une méthode d'une classe A le code suivant lorsque je souhaite mettre à jour ma barre de progression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    intanceOfB.UpdateMyProgressBar(50);
    Ce code est censé mettre à jour ma ProgressBar de ma classe B. Dans cette classe B, il y a un délégué et une méthode UpdateMyProgressBar.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public delegate void OnUpdateMyProgressBar(int value);
    public void UpdateMyProgressBar(int value)
    {
        if (this.InvokeRequired)
        {
            MessageBox.Show("This message never appears");
            OnUpdateMyProgressBar delegateOnUpdateMyProgressBar = new OnUpdateMyProgressBar(UpdateMyProgressBar);
            this.Invoke(delegateOnUpdateMyProgressBar, new object[] { value });
        }
        else
        {
            MessageBox.Show("This message appears correctly when function is called");
            _myProgressBar.Value = value;
            _myProgressBar.Refresh();
        }
    }
    Le problème c'est que ma barre de progression ou tout autre élement que j'ai envie de mettre à jour (label ou autre) n'est jamais mise à jour. Je suis en train de devenir fou !
    J'espère que quelqu'un pourra m'aider.
    Merci.
    Pensez à voter pour une réponse qui vous aide ou pour une personne insolente !
    Si votre sujet est résolu, cliquez sur le bouton !

  2. #2
    Membre expérimenté
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Points : 1 454
    Points
    1 454
    Billets dans le blog
    9

  3. #3
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Il faudrait plus de code pour pouvoir comprendre le problème. ClasseA et ClasseB représente quoi ? Des formulaires différents ?

    Si oui, il serait bon de modifier un peu le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public delegate void OnUpdateMyProgressBar(int value);
    public void UpdateMyProgressBar(int value)
    {
        if (_myProgressBar.InvokeRequired)
        {
            MessageBox.Show("This message never appears");
            OnUpdateMyProgressBar delegateOnUpdateMyProgressBar = new OnUpdateMyProgressBar(UpdateMyProgressBar);
            _myProgressBar.Invoke(delegateOnUpdateMyProgressBar, new object[] { value });
        }
        else
        {
            MessageBox.Show("This message appears correctly when function is called");
            _myProgressBar.Value = value;
            _myProgressBar.Refresh();
        }
    }
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/06/2014, 11h31
  2. Mise à jour avec les datasetproviders
    Par kafui dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/06/2006, 14h25
  3. Réponses: 3
    Dernier message: 22/12/2005, 17h47
  4. [C#] Barre de défilement et mise à jour de fenetre
    Par GlorfindelHebril dans le forum Windows Forms
    Réponses: 15
    Dernier message: 06/04/2005, 16h57
  5. Mise à jour avec jointure
    Par taupain dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/07/2004, 11h27

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