Timer [Résolu]

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

cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 8 août 2010 à 21:44
+3
Utile
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!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Robert33
cs_Robert33 835 Messages postés samedi 15 novembre 2008Date d'inscription 14 janvier 2017 Dernière intervention - 8 août 2010 à 18:44
0
Utile
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
cs_Byrong 224 Messages postés mercredi 28 septembre 2005Date d'inscription 24 juillet 2013 Dernière intervention - 8 août 2010 à 20:19
0
Utile
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
cs_Byrong 224 Messages postés mercredi 28 septembre 2005Date d'inscription 24 juillet 2013 Dernière intervention - 8 août 2010 à 21:53
0
Utile
merci j essay cela de suite
Commenter la réponse de cs_Byrong
cs_Byrong 224 Messages postés mercredi 28 septembre 2005Date d'inscription 24 juillet 2013 Dernière intervention - 8 août 2010 à 22:01
0
Utile
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
cs_Byrong 224 Messages postés mercredi 28 septembre 2005Date d'inscription 24 juillet 2013 Dernière intervention - 8 août 2010 à 22:17
0
Utile
merci tout fonctionne; énorme merci
Commenter la réponse de cs_Byrong

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.