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

Signaler
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008
-
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
-
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 ^^
A voir également:

9 réponses

Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

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.
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008

Merci cela fonctionne très bien avec le refresh :)
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
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]
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008

En parlant de Application.DoEvent(), je n'ai pas réussi à le faire marcher
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Qu'entends-tu par là ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
25
Date d'inscription
mardi 4 octobre 2005
Statut
Membre
Dernière intervention
27 avril 2008

Erreur 1 'System.Windows.Forms.Application' ne contient pas de définition pour 'DoEvent' 
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
en fait... c'est nul  mais c'est Application.DoEvents();

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

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.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
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]