Timer [Résolu]

cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Dernière intervention
24 juillet 2013
- 7 août 2010 à 18:37 - Dernière réponse : cs_Byrong
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
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
cs_Robert33
Messages postés
835
Date d'inscription
samedi 15 novembre 2008
Dernière intervention
14 janvier 2017
- 8 août 2010 à 21:44
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!

Merci cs_Robert33 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

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