C#窗体应用实现一个红绿灯效果,每次红灯亮 10 秒,绿灯亮 8 秒,黄灯亮 3 秒,并在红绿灯右侧显示倒计时
时间: 2023-12-13 07:04:08 浏览: 31
好的,针对您的需求,我来为您提供一份C#窗体应用实现红绿灯效果并显示倒计时的代码,具体实现方法如下:
```
public partial class Form1 : Form
{
private int redTime = 10; // 红灯亮的时间
private int yellowTime = 3; // 黄灯亮的时间
private int greenTime = 8; // 绿灯亮的时间
private int countDown = 0; // 倒计时
public Form1()
{
InitializeComponent();
timer1.Interval = 1000; // 定时器每秒执行一次
}
private void timer1_Tick(object sender, EventArgs e)
{
countDown--; // 每秒减少一秒
if (countDown < 0)
{
countDown = 0;
}
// 根据倒计时的时间判断需要显示哪个灯
if (countDown >= redTime + yellowTime && countDown < redTime + yellowTime + greenTime)
{
picGreen.Visible = true;
picYellow.Visible = false;
picRed.Visible = false;
}
else if (countDown >= redTime && countDown < redTime + yellowTime)
{
picGreen.Visible = false;
picYellow.Visible = true;
picRed.Visible = false;
}
else
{
picGreen.Visible = false;
picYellow.Visible = false;
picRed.Visible = true;
}
lblCountDown.Text = countDown.ToString(); // 显示倒计时
}
private void btnStart_Click(object sender, EventArgs e)
{
countDown = redTime + yellowTime + greenTime; // 设置倒计时的初始时间
timer1.Start(); // 启动定时器
}
}
```
在窗体上添加三个PictureBox控件,并分别设置为红灯、黄灯和绿灯的图片,并添加一个Label控件用于显示倒计时。然后添加一个Button控件,点击按钮启动红绿灯效果。
这里使用了一个Timer控件来实现定时器功能,每秒执行一次Tick事件。在Tick事件中,首先更新倒计时的时间,然后根据倒计时的时间判断需要显示哪个灯,并将倒计时的时间显示在Label控件上。
在启动红绿灯效果时,设置倒计时的初始时间为红灯亮的时间、黄灯亮的时间和绿灯亮的时间之和,然后启动定时器即可。