Das folgende Programm simuliert eine Verkehrsampel.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Threading; //Für Thread.Sleep(int milliseconds); namespace _08Ampel { public partial class Form1 : Form { Graphics gObject; Brush brush; Pen pen; int status = 0; public void InitAmpel() { gObject.Clear(Color.Black); pen = new Pen(Color.White, 2); gObject.DrawEllipse(pen, 20, 20, 80, 80); gObject.DrawEllipse(pen, 20, 120, 80, 80); gObject.DrawEllipse(pen, 20, 220, 80, 80); } public void greenblink() { for(int i=0;i<4;i++) { //Schwarz 500 ms gObject.FillEllipse(new SolidBrush(Color.Black), 21, 221, 78, 78); Thread.Sleep(500); // Grün 500 ms gObject.FillEllipse(new SolidBrush(Color.Green), 21, 221, 78, 78); Thread.Sleep(500); } } public Form1() { InitializeComponent(); gObject = canvas.CreateGraphics(); } private void Form1_Shown(object sender, EventArgs e) { InitAmpel(); } private void bt_red_Click(object sender, EventArgs e) { InitAmpel(); brush = new SolidBrush(Color.Red); gObject.FillEllipse(brush, 21, 21, 78, 78); status = 1; } private void bt_redyellow_Click(object sender, EventArgs e) { InitAmpel(); brush = new SolidBrush(Color.Red); gObject.FillEllipse(brush, 21, 21, 78, 78); brush = new SolidBrush(Color.Yellow); gObject.FillEllipse(brush, 21, 121, 78, 78); status = 2; } private void bt_green_Click(object sender, EventArgs e) { InitAmpel(); brush = new SolidBrush(Color.Green); gObject.FillEllipse(brush, 21, 221, 78, 78); status = 3; } private void bt_yellow_Click(object sender, EventArgs e) { InitAmpel(); brush = new SolidBrush(Color.Yellow); gObject.FillEllipse(brush, 21, 121, 78, 78); status = 0; } private void bt_continue_Click(object sender, EventArgs e) { switch(status) { case 0: bt_red.PerformClick();break; case 1: bt_redyellow.PerformClick(); break; case 2: bt_green.PerformClick(); break; case 3: greenblink(); bt_yellow.PerformClick(); break; } } } }