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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    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
    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.

  2. #2
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    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
    Billets dans le blog
    9

  3. #3
    Expert confirmé

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

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

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    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();
        }
    }

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