Probleme de changement de texte d'un label [Résolu]

Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
- - Dernière réponse : ephilas
Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
- 23 févr. 2005 à 22:04
Bonjour,

Alors voilà, dans mon programme lorsque je clique sur le bouton Telecharger le texte du label devient "Telechargement en cours" et lorsque que je clique sur le bouton Pause/Reprendre il devient "Telechargement en pause" mais lorsque je reclique sur ce meme bouton le texte ne change pas alors qu'il devrait devenir "Telechargement en cours".

Voilà ce que j'ai ecris au debut de ma fonction Telecharger :



label3.Text="Téléchargement en cours";

label3.ForeColor = System.Drawing.Color.Red;



Mais si à la place j'ecris :



MessageBox.Show("Telechargement");


label3.Text="Téléchargement en cours";


label3.ForeColor = System.Drawing.Color.Red;



alors la message box s'affiche et le label change bien de texte !? Je n'y comprends rien.

Avez vous une idée svp ? (Promis apres j'arrete de vous emmerder ! )
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
3
Merci
Bonsoir,
On peut forcer la mise à jour du label en appelant sa méthode Refresh :
myLabel.Refresh();

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Bidou
Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
0
Merci
Merci Bidou, ça clos mon premier programme !
Commenter la réponse de ephilas
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
0
Merci
De rien !
En fait, un label et tout autre Control d'ailleurs se rafraichit "quand il a le temps". Comme la méthode Refresh appartient à la classe UserControl, on peut sans autre l'appeler pour n'importe quel contrôle (puisqu'ils dérivent tous de UserControl), pour forcer le refresh dudit contrôle...
On peut aussi agir à un niveau plus élevé, en appelant Application.DoEvents() pour traiter tous les messages qui sont encore dans la "queue".

On s'aperçoit facilement du résultat avec le petite morceau de code suivant :


for(int i=0; i<5000; i++) Console.WriteLine("first");
this.button1.Text = " CHANGER ";

//this.button1.Refresh();
//Application.DoEvents();
for(int i=0; i<5000; i++) Console.WriteLine("second");

Voilà bonne soirée.
A plus.

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
21
Date d'inscription
mardi 3 août 2004
Dernière intervention
14 février 2007
0
Merci
Merci pour les explications !
Commenter la réponse de ephilas

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.