windows上位机开发学习(二)

一、案例1 计时器(下)

  • 上一篇文章中我们完成了计时器的外形设计,下面我们继续代码的编写
  • 首先添加设置Timer定时器,从左边工具箱中拖到计时器框内随便的位置然后松手,在右下角设置属性把间隔改为1000ms方便后续编程
    在这里插入图片描述

核心代码实现

  • 第1步:声明全局变量

  • 在窗体类的主要部分,我们声明两个全局变量来跟踪倒计时的状态。它们需要在多个方法中被访问,所以作用域需为类级别。

// 声明全局变量
int count; // 记录已经流逝的秒数
int time;  // 存储用户设置的总倒计时秒数
  • 第2步:“开始”按钮点击事件

  • 这是倒计时的启动器。当用户点击按钮时,我们需要解析他选择的时间,并初始化所有组件状态。

private void button1_Click(object sender, EventArgs e)
{
    // 1. 获取用户选择的文本(例如:"5分")
    string str = comboBox1.Text;
    
    // 2. 解析时间:截取字符串中除最后一个字符外的所有部分,并转换为整数
    // 例如:"5分" -> 截取"5" -> 转换为整数5
    time = Convert.ToInt32(str.Substring(0, str.Length - 1));
    
    // 3. 初始化进度条
    progressBar1.Maximum = time; // 进度条的最大值等于总秒数
    progressBar1.Value = 0;      // 当前值归零
    
    // 4. 重置计数器
    count = 0;
    
    // 5. 启动计时器,开始倒计时!
    timer1.Start();
}
  • 代码细节解读:

  • str.Substring(0, str.Length - 1) 是关键。它从字符串索引0开始,截取长度为 (原字符串长度 - 1) 的子串,完美地去掉了最后一个中文字符(如“秒”),只留下数字部分。

  • Timer 组件需要将其 Interval(间隔)属性设置为 1000(即1秒),这样才能每秒触发一次 Tick 事件。

  • 第3步:计时器Tick事件

  • 这是倒计时的核心逻辑,每秒自动执行一次,负责更新界面和判断结束。

private void timer1_Tick(object sender, EventArgs e)
{
    count++; // 流逝的秒数+1
    
    // 1. 更新界面标签,显示剩余时间
    // 例如: (5 - 1) = 4 -> "4秒"
    label3.Text = (time - count).ToString() + "秒";
    
    // 2. 更新进度条的值,直观展示进度
    progressBar1.Value = count;
    
    // 3. 判断倒计时是否结束
    if (count == time) 
    { 
        // 停止计时器
        timer1.Stop(); 
        
        // 播放系统提示音,提醒用户
        System.Media.SystemSounds.Asterisk.Play();
        
        // 弹出对话框,告知用户时间已到
        MessageBox.Show("时间到了!", "提示");
    }
}
  • 代码细节解读:

  • System.Media.SystemSounds.Asterisk.Play() 是.NET框架内置的一个简便方法,用于播放系统关联的提示音,无需引用额外文件。

  • progressBar1.Value = count; 使得进度条的增长与时间的流逝完全同步,提供了良好的视觉反馈。

  • 完成计时器案例
    在这里插入图片描述

常见单片机的int大小

  • 学习过程中遇到了int到底多大的问题,下面列表说明
    在这里插入图片描述

附学习参考网址

  1. C#上位机开发串口通信编程

欢迎大家有问题评论交流 (* ^ ω ^)

更多推荐