17 Mar2016
Lampes colorées
Objectif: Manipuler les contrôles avancés TIMER, TRACKBAR
Réaliser l’application suivante :
Le but de l’application est d’allumer des lampes colorées (cocher les RADIOBUTTON) au rythme de la fréquence réglée dans le contrôle TRACKBAR.
- Au clic sur le bouton « Play », les lampes commencent à s’allumer et s’éteindre automatiquement et en ordre (Rouge,vert,Bleu) selon la fréquence de la barre de réglage.
- Au clic sur le bouton « Stop », arrêter l’action et réinitialiser le formulaire.
- Activer et désactiver les différents contrôles de l’application de telle sorte à ce qu’ils deviennent accessibles seulement lorsqu'il est possible de les utiliser.
Exemple d’exécution 1:
Exemple d'exécution 2:
//Auteur : CHAOULID
//Copyright : Exelib.net
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { trackBar1.Minimum = 0; //min de la barre (0 ms) trackBar1.Maximum = 10; //max de la barre (1 s) trackBar1.TickFrequency = 1; //unité de la barre (100 ms) button_stop.Enabled = false; //Désactiver le bouton Stop trackBar1.Enabled = false; //Désactiver la barre groupBox1.Select(); //ne cocher aucun radio (Lampe) } private void button_play_Click(object sender, EventArgs e) { if (trackBar1.Value != trackBar1.Minimum) //Si la fréquence est non nulle { timer1.Start(); //Démarrer l'action } button_stop.Enabled = true; //Activer le bouton Stop button_play.Enabled = false; //Désactiver le bouton Play trackBar1.Enabled = true; //Activer la barre } private void button_stop_Click(object sender, EventArgs e) { timer1.Stop(); //Arrêter l'action button_stop.Enabled = false; //Désactiver le bouton Stop button_play.Enabled = true; //Activer le bouton Play trackBar1.Enabled = false; //Désactiver la barre radioButton1.Checked = false; //éteindre toutes les lampes radioButton2.Checked = false; radioButton3.Checked = false; this.BackColor = DefaultBackColor; //couleur par défaut du formulaire } private void timer1_Tick(object sender, EventArgs e) {
//éteindre la lampe courante et allumer la lampe suivante if (radioButton1.Checked) { radioButton1.Checked = false; radioButton2.Checked = true;
this.BackColor = Color.Green; } else if (radioButton2.Checked) { radioButton2.Checked = false; radioButton3.Checked = true;
this.BackColor = Color.Blue; } else { radioButton3.Checked = false; radioButton1.Checked = true;
this.BackColor = Color.Red; } } private void trackBar1_Scroll(object sender, EventArgs e) { timer1.Stop(); //Arrêter le timer if (trackBar1.Value != trackBar1.Minimum) //si la fréquence est non nulle { timer1.Interval = trackBar1.Value * 100; //nouveau régalage de la barre timer1.Start(); //démarrer l'action à nouveau } } }