10 Mar2016
Chronomètre
Objectif : Manipuler des contrôles avancés TIMER
Réaliser l’application C# « Chronomètre » suivante :
- Le bouton « Démarrer » permet de démarrer le chronomètre.
- Le bouton « Arrêter » permet de mettre une pause au chronomètre.
- Le bouton « Effacer » permet de réinitialiser le chronomètre et effacer la liste.
- Le bouton « Tour » permet de capturer la valeur affichée du chronomètre.
Déclaration des variables globales:
//Auteur : CHAOULID //Copyright : Exelib.net public partial class Form1 : Form { int cs=0; //Centième de secondes
int s=0; //Secondes
int m=0; //Minutes
int i=0; //Nombre de tours
......
Au chargement du formulaire:
private void Form1_Load(object sender, EventArgs e) { timer1.Interval = 10; label_min.Text = "00"; //Label des minutes label_sec.Text = "00"; //Label des secondes label_csec.Text = "00"; //Label des centièmes de secondes }
Au clic sur le bouton Démarrer:
private void button1_Click(object sender, EventArgs e) { timer1.Start(); //Démarrer le timer }
Au tic du Timer:
private void timer1_Tick(object sender, EventArgs e) //à chaque centième de secondes { cs++;
//Bien régler l'affichage
if (cs < 10)
label_csec.Text = "0" + cs;
else
label_csec.Text = cs.ToString(); if (cs == 100) { cs = 0; s++;
if (s < 10)
label_sec.Text = "0" + s;
else
label_sec.Text = s.ToString(); if (s == 60) { s = 0; m++;
if (m < 10)
label_min.Text = "0" + m;
else
label_min.Text = m.ToString(); } } } }
Au clic sur le bouton Arrêter:
private void button2_Click(object sender, EventArgs e) { timer1.Stop(); //Arrêter le timer }
Au clic sur le bouton Effacer:
private void button3_Click(object sender, EventArgs e) {
//Arrêter le timer et réinitialiser les champs timer1.Stop(); cs = 0; s = 0; m = 0; i = 0; label_min.Text = "00"; label_sec.Text = "00"; label_csec.Text = "00"; listBox1.Items.Clear(); }
Au clic sur le bouton Tour:
private void button4_Click(object sender, EventArgs e) { i++; //Incrémenter le nombre de tours listBox1.Items.Add("Tour "+i+":"+label_min.Text + ":" + label_sec.Text + ":" + label_csec.Text); }