Faire une pause dans l'appli [Résolu]

Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Dernière intervention
27 avril 2008
- - Dernière réponse : sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
- 3 avril 2008 à 20:57
Bonsoir, je voudrais faire une pause dans l'exécution d'un évènement click sur une picturebox, voici le code :

Message.Text = "Message A";
System.Threading.Thread.Sleep(5000);
Message.Text = "Message B";

Mon problème est que le Message A n'apparait pas sur mon Form, seule la pause et le second "affichage" fonctionnent. (Message.Text est initialisé à "" dans le Form et c'est un contrôle Label)

Si vous avez une idée, je suis preneur, merci ^^
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Dernière intervention
30 janvier 2009
3
Merci
bonsoir, après ton Message.Text = "Message A"; fait Message.Refresh() (si ca éxiste sur ton contôle) ou un Application.DoEvent(); ca devrai permettre de l'afficher.

Dire « Merci » 3

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

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de oximoron
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Dernière intervention
27 avril 2008
0
Merci
Merci cela fonctionne très bien avec le refresh :)
Commenter la réponse de daikyo
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
54
0
Merci
ton erreur c'était surtout que "System.Threading.Thread.Sleep(5000); " suspend le thread courant de l'application... donc pendant 5 secondes ton application était figée.

la méthode Refresh() force ton label à se rafraichir...
Application.DoEvent() force Windows à traiter les messages en attentes.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Dernière intervention
27 avril 2008
0
Merci
En parlant de Application.DoEvent(), je n'ai pas réussi à le faire marcher
Commenter la réponse de daikyo
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
54
0
Merci
Qu'entends-tu par là ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Dernière intervention
27 avril 2008
0
Merci
Erreur 1 'System.Windows.Forms.Application' ne contient pas de définition pour 'DoEvent' 
Commenter la réponse de daikyo
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
54
0
Merci
en fait... c'est nul  mais c'est Application.DoEvents();

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Dernière intervention
30 janvier 2009
0
Merci
a oui pardon c'est avec un s. Mais à savoir que ca ralenti ton application, dasn ton cas ca n'est pas génant car c'est une attente, mais si c'est par exemple une grande boucles de calculs simple ca va plomber le temps d'exection. ar contre ca permet de supprimer l'effet "l'application ne répond pas" c'est donc à utiliser correctement c'est à dire pas à chaque itération de la boucle.
Commenter la réponse de oximoron
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
54
0
Merci
en cas de long traitement de toute façon, le plus efficace est d'utiliser un thread.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate

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.