Timer

Résolu
cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013 - 7 août 2010 à 18:37
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

6 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
8 août 2010 à 21:44
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!
3
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
8 août 2010 à 18:44
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!
0
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 à 20:19
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.
0
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 à 21:53
merci j essay cela de suite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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:01
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?
0
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
merci tout fonctionne; énorme merci
0
Rejoignez-nous