c#window应用程序红绿灯
时间: 2023-11-24 21:56:15 浏览: 80
实现红绿灯可以通过控制三个圆形控件的背景颜色实现,以下是一个简单的示例:
1. 在窗体中添加三个圆形控件,命名为 redCircle、yellowCircle、greenCircle。
2. 在窗体的 Load 事件中启动一个计时器,每隔一段时间切换圆形控件的颜色,模拟红绿灯的变化。
```csharp
private void Form_Load(object sender, EventArgs e)
{
// 启动计时器
timer1.Interval = 2000; // 2秒
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
switch (currentState)
{
case LightState.Red:
// 红灯 -> 绿灯
redCircle.BackColor = Color.Gray;
greenCircle.BackColor = Color.Green;
currentState = LightState.Green;
break;
case LightState.Yellow:
// 黄灯 -> 红灯
yellowCircle.BackColor = Color.Gray;
redCircle.BackColor = Color.Red;
currentState = LightState.Red;
break;
case LightState.Green:
// 绿灯 -> 黄灯
greenCircle.BackColor = Color.Gray;
yellowCircle.BackColor = Color.Yellow;
currentState = LightState.Yellow;
break;
}
}
```
3. 定义一个枚举类型 LightState,表示当前是红灯、黄灯还是绿灯。
```csharp
enum LightState
{
Red,
Yellow,
Green
}
private LightState currentState = LightState.Red;
```
4. 在窗体的 FormClosing 事件中停止计时器。
```csharp
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
// 停止计时器
timer1.Enabled = false;
}
```
这样就实现了一个简单的红绿灯效果,可以根据需要进行调整和扩展。
阅读全文