在C#中用Timer控件和画图,写一个红绿灯的窗体应用
时间: 2024-02-12 14:05:09 浏览: 163
好的,以下是红绿灯的窗体应用程序代码:
```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
namespace TrafficLightApp
{
public partial class Form1 : Form
{
private Timer timer;
private int count = 0;
public Form1()
{
InitializeComponent();
// 创建 Timer 控件
timer = new Timer();
timer.Interval = 1000;
timer.Tick += Timer_Tick;
timer.Start();
}
private void Timer_Tick(object sender, EventArgs e)
{
count++;
// 根据计数器的值,控制红绿灯的显示
switch (count % 3)
{
case 0:
pictureBoxRed.BackColor = Color.Gray;
pictureBoxYellow.BackColor = Color.Gray;
pictureBoxGreen.BackColor = Color.Green;
break;
case 1:
pictureBoxRed.BackColor = Color.Red;
pictureBoxYellow.BackColor = Color.Gray;
pictureBoxGreen.BackColor = Color.Gray;
break;
case 2:
pictureBoxRed.BackColor = Color.Gray;
pictureBoxYellow.BackColor = Color.Yellow;
pictureBoxGreen.BackColor = Color.Gray;
break;
}
}
}
}
```
在窗体设计器中,放置三个 PictureBox 控件,分别用于显示红、黄、绿三个灯。在窗体的构造函数中,创建 Timer 控件并设置其 Tick 事件。在 Tick 事件中,根据计数器的值(模 3),控制红绿灯的显示。在这里,我们将计数器每秒加 1,红灯亮 1 秒,黄灯亮 1 秒,绿灯亮 1 秒,然后重复这个过程。
需要注意的是,我们这里使用了三个 PictureBox 控件来显示红、黄、绿三个灯的状态,这些控件的背景色会根据状态变化而变化。这种方式相对简单,但也有一些缺点,比如不太容易实现灯的闪烁等效果。如果需要更加灵活的灯光控制,可以考虑使用 GDI+ 绘制。
阅读全文