第二个版本
内容:在界面加上十个按钮,每隔一秒,随机让一个按钮变成蓝色,再过0.5秒,按钮恢复到灰色
想法:界面在原有的基础上添加9个button并且公用同一个事件
难点:
- 如何将前台的10button随机
- 如何将按钮变蓝再变灰
后台代码:
private void Button_Click(object sender, EventArgs e) {
DispatcherTimer showTimer = new DispatcherTimer();
showTimer.Tick += new EventHandler(OnTimedEvent);
showTimer.Interval = new TimeSpan(0, 0, 0, 2);
showTimer.Start();
}
public async void OnTimedEvent(object sender, EventArgs e) {
//计时时执行的程序
List<ButtonBase> btns = new List<ButtonBase>();
btns.Add(btn1);
btns.Add(btn2);
btns.Add(btn3);
btns.Add(btn4);
btns.Add(btn5);
btns.Add(btn6);
btns.Add(btn7);
btns.Add(btn8);
btns.Add(btn9);
btns.Add(btn10);
Random b1 = new Random();
int index = b1.Next(btns.Count);
btns[index].Background = Brushes.LightBlue;
await Task.Delay(2000);
btns[index].Background = Brushes.LightGray;
}
- 定时器是跟第一个版本一样的
- 不同的是在“计时器执行的程序”的写法不同
- 首先需要在前台的每个button需要x:name="xxx"取名称
- 然后再在后台中通过集合的方式添加上每一个按钮。
- 取到集合后再对这个集合进行随机取 主要点是int index=b1.Next(btns.Count);
- 然后对这个随机按钮进行颜色赋值
- 最关键一步如何让“肉眼”看到颜色的变化:添加异步等待 await Task.Delay(2000); 让它等待2s再执行下一步
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端