如何在C# Windows窗体应用中显示当前日期时间及实时更新标题栏?
解决C# WinForms实时显示当前日期时间的两种需求
嘿,我来帮你搞定这两个需求!要实现实时更新日期时间,核心是用Timer控件定时刷新,搭配DateTime.Now.ToString()来获取当前时间。下面是详细的实现步骤:
1. 准备工作:添加Timer控件
打开你的WinForms项目,在工具箱里找到Timer控件(通常在「组件」分类下),直接拖到你的窗体上就行。这个控件会在后台默默运行,定时触发更新事件。
2. 配置Timer属性
选中刚添加的Timer控件,在右侧属性窗口里做两个设置:
- 设置
Interval为1000(单位是毫秒,也就是1秒刷新一次,你可以根据需求调整,比如设500就是半秒更一次) - 先把
Enabled设为false,我们后面在窗体加载时再启动它
3. 编写实时更新逻辑(Timer的Tick事件)
双击Timer控件,自动生成Tick事件处理方法,在方法里加入以下代码:
private void timer1_Tick(object sender, EventArgs e) { // 1. 更新控件的Text属性(这里假设你用的是Label控件,名字是lblDateTime) lblDateTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // 2. 更新窗体标题栏 this.Text = $"当前时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"; }
小技巧:自定义时间显示格式
ToString()里的参数可以自由调整格式,比如:
yyyy-MM-dd:显示「年-月-日」(例:2024-05-20)HH:mm:ss:24小时制的「时:分:秒」(例:14:30:45)yyyy年MM月dd日 HH:mm:ss:中文格式(例:2024年05月20日 14:30:45)
你完全可以根据自己的需求修改这个格式字符串。
4. 启动Timer
双击窗体空白处,生成窗体的Load事件,在事件里启动Timer:
private void Form1_Load(object sender, EventArgs e) { timer1.Start(); }
这样一来,窗体加载完成后,Timer就会每秒触发一次更新,控件文本和窗体标题就会实时显示当前时间啦!
如果你只需要在窗体加载时显示一次(不需要实时更新),那直接在Form_Load里写一次赋值就行,不用Timer:
private void Form1_Load(object sender, EventArgs e) { lblDateTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); this.Text = $"当前时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"; }
内容的提问来源于stack exchange,提问作者Abolfazl
相关产品推荐
相关产品推荐

