c#红绿灯窗体程序编写用draw和timer实现
时间: 2024-05-12 16:15:38 浏览: 199
红绿灯编写程序
下面是一个简单的 C# 红绿灯窗体程序编写,使用 Draw 和 Timer 实现:
首先,在窗体中添加一个 Timer 控件,并将其 Interval 属性设置为 1000,以便每秒更新红绿灯。
然后,在窗体的 Paint 事件中使用 Draw 方法绘制红绿灯。代码如下:
```
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
// 绘制红灯
if (redLight)
g.FillEllipse(Brushes.Red, 50, 50, 50, 50);
else
g.DrawEllipse(Pens.Red, 50, 50, 50, 50);
// 绘制绿灯
if (greenLight)
g.FillEllipse(Brushes.Green, 50, 150, 50, 50);
else
g.DrawEllipse(Pens.Green, 50, 150, 50, 50);
}
```
在 Form1 的构造函数中启动 Timer,并将其 Tick 事件处理程序设置为 UpdateLights 方法:
```
public Form1()
{
InitializeComponent();
timer1.Start();
timer1.Tick += new EventHandler(UpdateLights);
}
```
在 UpdateLights 方法中,切换红绿灯状态,并调用 Invalidate 方法触发 Paint 事件重新绘制红绿灯:
```
bool redLight = false;
bool greenLight = true;
private void UpdateLights(object sender, EventArgs e)
{
redLight = !redLight;
greenLight = !greenLight;
Invalidate();
}
```
这样,每秒钟红绿灯的状态就会交替更新,并在窗体上绘制出来。
阅读全文