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 :

[Débutant] Changer le texte d'un bouton au click


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 18
    Points : 19
    Points
    19
    Par défaut [Débutant] Changer le texte d'un bouton au click
    Bonjour,

    je cherche à changer le texte d'un bouton lorsque je clique dessus.
    Actuellement, je suis capable de la changer, mais j'ai l'impression que cela se fait à la sortie de l'evenement Click et non "AU" click.

    private void butlancement_Click(object sender, System.EventArgs e)
    {
    this.butlancement.Text="Travail EN COURS ....";
    this.butrecupquota.ForeColor = System.Drawing.Color.Red;
    jappellemafonctiondelancementici();
    }
    J'aimerais que la modification sur le bouton se fasse avant que ma fonction ne soit lancée, vu elle mouline pendant quelques minutes mais ce n'est pas le cas, cela se fait après.


    Si vous avez une idée ....


    Merci,
    Zolstead.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    c'est normal que cela soit fait apres ta routine...

    En effet, c'est dans ton block fonctionnelle que tu fais à la fois une mise
    à jour de l'état de ton bouton... et que tu appelles ta "longue" fonction
    de traitement...

    Une solution serait que tu appelles ton traitement en faisant un BeginInvoke()
    ainsi, ta fonction sera lancée dans un thread différent et donc, tu sortiras
    du code de mise à jour de tes données... d'ou la mise à jour de ton texte
    de suite et non à la fin du traitement..

    suis-je assez clair ?

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    voici un exemple

    tu crées un nouveau projet.. tu mets un bouton dans ta form et tu colles le code suivant :

    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
    17
    18
    19
    20
    21
    22
        public partial class Form1 : Form
        {
            public delegate void Work();
            public Form1()
            {
                InitializeComponent();
            }
     
            public void work()
            {
                Thread.Sleep(2000);
                MessageBox.Show("Thread fini");
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                Work del = new Work(this.work);
                del.BeginInvoke(null, null);
                button1.Text = "en cours...";
     
            }
        }
    L'idée derrière est que le del.BeginInvoke va lancer un thread de traitement
    de ta fonction... puis pendant que ce thread travaillera, ton bouton1 va pouvoir se mettre à jour....

    Si tu lances ton appli et appui sur le bouton.. tu verras : "en cours" dans le bouton " et 2 secondes apres (approximatif) , une messageBox s'afficher

    Résolu ?

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Nickel,

    merci beaucoup pour la rapidité et la qualité de cette réponse.
    J'ai pris un peu de temps, histoire de bien comprendre le méchanisme avant de valider

    Bonne fin de journée !

    Zolstead.

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

Discussions similaires

  1. Changer le texte d'un bouton
    Par doommick31 dans le forum MFC
    Réponses: 2
    Dernier message: 03/08/2007, 10h31
  2. Réponses: 4
    Dernier message: 08/05/2007, 09h40
  3. Changer le texte d'un bouton que j'ai créé
    Par kurvanov dans le forum Flash
    Réponses: 2
    Dernier message: 21/03/2007, 22h29
  4. Réponses: 4
    Dernier message: 31/07/2006, 16h18
  5. [Débutant]Changer du text dans un tableau
    Par Azimel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/09/2005, 18h38

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