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

Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008
- - Dernière réponse : sebmafate
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
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
Statut
Membre
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 145 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
Statut
Membre
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
Statut
Modérateur
Dernière intervention
14 février 2014
29
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
Statut
Membre
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
Statut
Modérateur
Dernière intervention
14 février 2014
29
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
Statut
Membre
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
Statut
Modérateur
Dernière intervention
14 février 2014
29
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
Statut
Membre
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
Statut
Modérateur
Dernière intervention
14 février 2014
29
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