Timer [Résolu]

Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
- - Dernière réponse : cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
- 8 août 2010 à 22:17
Bonjour

voila j'aimerai un peu d'aide car j'ai un soucis avec un timer.

En fait j ai deux label sur ma form

un qui va affiche le compte a rebour et l'autre va afficher une information prise dans un tableau.

Mon probleme est que j'aimerai mettre une boucle qui permettrai d'arreter le timer une fois le tableau fini.

Cependant je ne sais pas ou mettre cette boucle...Mon timer utilise un datetime

        private void timer1_Tick(object sender, EventArgs e)
        {
            
            dt = dt.AddSeconds(-1);
            labTemps.Text = dt.ToLongTimeString().ToString();
        }


merci pour votre aide
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
20
3
Merci
Bonsoir,

OK,
je te propose de tout faire dans l'evenement Tick:


Timer _timer = new Timer();
DateTime _remainingTime = new DateTime(0);
DateTime _timeLoop = new DateTime(0);
int _loopCount = 1;
public Form1()
{
InitializeComponent();
_timeLoop = _timeLoop.AddSeconds(10); // chaque boucle de 10 secondes
_timer.Interval = 1000;
_timer.Tick += new EventHandler(timer_Tick);
}
//Boutton de lancement
private void button3_Click(object sender, EventArgs e)
{
_remainingTime = _timeLoop;
textBox2.Text = string.Format("Boucle N°{0}", _loopCount);
textBox1.Text = _remainingTime.ToString("HH:mm:ss");
_timer.Start();
}
//Procedure du timer
void timer_Tick(object sender, EventArgs e)
{
if (_remainingTime == new DateTime(0))
{  	// une boucle vient de finir, 
if (_loopCount == 3)
{
textBox2.Text = "Perdu";
_timer.Stop();
}
else
{
// on réinitialize pour la prochaine
// attention si tu as un traitement un peu long, arrete et redemarre le timer
_timer.Stop();
//ici un traitment long, genre message box ...
_timer.Start();
_loopCount++;
textBox2.Text = string.Format("Boucle N°{0}", _loopCount);
_remainingTime = _timeLoop;
}
}
else
_remainingTime = _remainingTime.AddSeconds(-1);
textBox1.Text = _remainingTime.ToString("HH:mm:ss");
}



C# is amazing, enjoy it!

Dire « Merci » 3

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

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

Commenter la réponse de cs_Robert33
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
20
0
Merci
Bonsoir

je ne comprends pas très bien ce que tu veux faire de cette boucle.

une fois ton tableau terminé, il te suffit de faire timer1.Stop(); pour arreter le timer.

bob
C# is amazing, enjoy it!
Commenter la réponse de cs_Robert33
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
0
Merci
je me suis aml exprimé.

En fait j'aimerais un compte a rebour

Donc mon timer est comme le code ecrit ci dessus, à savoir:

        private void timer1_Tick(object sender, EventArgs e)
        {
            
            dt = dt.AddSeconds(-1);
            labTemps.Text = dt.ToLongTimeString().ToString();
        }


Cependant, ce compte a rebour doit se repeter une fois le premier compte a rebour arrivé à 0.

a chaque fois que le compte a rebour commence, il affiche le texte contenu dans un tableau dans un label et change a chaque fois que la boucle est incrémenté. Cette boucle ne s'incrémente a la fin de chaque compte a rebour.
Commenter la réponse de cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
0
Merci
merci j essay cela de suite
Commenter la réponse de cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
0
Merci
en fait je fait un programme pour les tour de blind du poker.

Donc si je choisi 5minute.

Il doit décompter 5minuteen affichant le compte a rebour, et changer à chaque fois le deuxieme label en fonction.

Donc si j'ai bien compri, dans le timeloop, je dois mettre les 5minutes.

et dans l'interval. je met quoi?
Commenter la réponse de cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
0
Merci
merci tout fonctionne; énorme merci
Commenter la réponse de cs_Byrong