当前位置: 首页 > news >正文

WinForm 计时器 Timer 学习笔记

1. Timer 是干啥的?

就是个“自动闹钟”:
你设定每隔多少毫秒(比如 1000 毫秒 = 1 秒),它就自动执行一段代码。

常见用途:

  • 实时显示时间
  • 倒计时
  • 定时刷新数据
  • 轮询状态

2. 怎么用?三步搞定(WinForm 拖控件方式)

第一步:拖一个 Timer 到窗体

  • 打开设计器
  • 工具箱 → 找到 Timer(在“组件”里)
  • 拖到窗体上 → 它不会出现在界面上,而是在窗体底部显示为 timer1

第二步:设置两个关键属性

选中底部的 timer1,在属性窗口里改:

属性 说明
Interval 1000 每隔多少毫秒触发一次(1000 = 1秒)
Enabled True 必须设为 True! 否则 Timer 是“关着的”,不会跑

⚠️ 默认 Enabled = False!这是大多数人写了代码却不生效的原因!

第三步:写要执行的代码

  • 双击底部的 timer1
  • Visual Studio 会自动生成 timer1_Tick 方法
  • 在里面写你要定时干的事,比如:
private void timer1_Tick(object sender, EventArgs e)
{label1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}

✅ 因为是 WinForm 自带的 Timer,可以直接改 label、button 等控件,不会报错!


3. 常见问题 & 注意事项

❌ 问题:写了代码但没反应?

原因Enabled 没设成 True,或者 Interval 是 0。
解决:检查属性窗口,把 Enabled 改为 TrueInterval 设成 1000 之类的正数。

⏸️ 想暂停/继续?

timer1.Stop();  // 暂停
timer1.Start(); // 继续

或者直接改属性:

timer1.Enabled = false; // 暂停
timer1.Enabled = true;  // 继续

想改时间间隔?

随时可以改:

timer1.Interval = 500; // 改成每0.5秒一次

窗体关闭时需要清理吗?

一般不用,WinForm 会自动释放。但如果你在 Timer 里开了文件、网络连接等资源,记得在 FormClosed 里停掉:

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{timer1.Stop();
}

4. 一句话总结

WinForm 用 Timer,就三件事:
拖控件 → 设 Interval 和 Enabled=True → 双击写代码
其他都不用管,直接改界面控件,安全又省心!

搞定!

http://www.zskr.cn/news/11761.html

相关文章:

  • 深入了解一波JVM内存模型
  • CCPC2024-Zhengzhou G Same Sum(线段树)
  • CDN中使用边缘函数实现自定义编程
  • 敏捷开发的几个阶段
  • 实战:基于 BRPC+Etcd 打造轻量级 RPC 服务 —— 从注册到调用的完整实现 - 教程
  • 【2025最新】ArcGIS 点聚合功能实现全教程(进阶版) - 实践
  • 徐霞客的《青云志》
  • 运营商 API 安全最佳实践、案例与方案推荐(2025)|千万级接口的全链路实战
  • 使用trace进行排查网络瓶颈
  • JavaEE 导读与环境配置 - 实践
  • 实用指南:uniapp x鸿蒙开发之运行到鸿蒙模拟器
  • Redis 监听过期Key - 指南
  • 为什么我选择了 PSM 敏捷认证?
  • 编写msyql8.0.21 数据库批量备份脚本
  • ArcGIS 不重叠且无缝的拓扑检查和修改
  • 2025/9/25
  • 读书笔记:揭开索引的两个常见误区
  • 获取用户ip所在城市
  • 完整教程:JRE、JDK、JVM 及 JIT 之间有什么不同?
  • 微波雷达模块在智能家居中的具体应用案例有哪些?
  • 三分
  • 完整教程:微服务基础2-网关路由
  • nginx ipv6 proxy配置
  • (三)数仓人必看!ODS 到 DWS 各层设计规范全解析,含同步/存储/质量核心要点
  • 【shell】系统资源不足fork: retry: Resource temporarily unavailable
  • 【语文训练】女乃龙?田力乃龙?
  • 抖动分为3个方面
  • 关于ubuntu 用户切换的细节 su - user 和su user
  • 用 SeaTunnel 同步 MySQL 到 Doris:全量增量 + SQL 过滤
  • 在CodeBolcks下wxSmith的C++编程教程——使用自定义绘制和鼠标处理创建项目