C#桌面应用开发:番茄定时器

C#桌面应用开发:番茄定时器

1、环境搭建和工程创建:

步骤一:安装visual studio2022

步骤二:新建工程
在这里插入图片描述

2、制作窗体部件

*踩过的坑:

(1)找不到工具箱控件,现象如下:

在这里插入图片描述

解决办法:

依次点击:工具栏->获取工具和功能->单个组件:安装3.5版本开发工具
在这里插入图片描述

若上述在这里插入图片描述
办法不生效,继续检查.NET桌面开发和ASP.NET开发是否勾选

最后点击顶部栏的:视图->工具箱就能显示出工具栏

3、界面布局设计

(1)界面设计如下:

在这里插入图片描述

4、具体功能函数

using System;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace MyProject01
{
    public partial class Form1 : Form
    {
        UInt16 Timer_Value = 0; //定时值
        UInt16 Timer_Count = 0; //定时器计数值
        byte Timer_Status = 0;  //定时器状态 0--停止  1 -- 定时状态  2 --暂停状态




        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        private void flowLayoutPanel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void label1_Click_1(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label4_Click(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            byte i;

            for (i = 0; i < 60; i++)
            {
                //分钟和秒钟的组合框初始化
                comboBox1.Items.Add(i.ToString());
                comboBox2.Items.Add(i.ToString());

                comboBox1.Text = "45";  //初始化为45分钟
                comboBox2.Text = "0";


            }
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged_1(object sender, EventArgs e)
        {
            textBox1.ReadOnly = true;
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            //定时器状态机函数
            switch (Timer_Status)
            {
                case 0:
                    {
                        //获取定时时间,分钟*60+秒钟
                        Timer_Value = Convert.ToUInt16(comboBox1.Text, 10);
                        Timer_Value *= 60;
                        Timer_Value += Convert.ToUInt16(comboBox2.Text, 10);

                        if (Timer_Value > 0)
                        {

                            //开始定时任务
                            textBox1.Text = Timer_Value.ToString() + " 秒";
                            button1.Text = "暂停计时";
                            button2.Enabled = true;

                            comboBox1.Enabled = false;  //关闭时间选择
                            comboBox2 .Enabled = false;

                            timer1.Start();

                            Timer_Status = 1;

                        }
                        else
                        {

                            MessageBox.Show("定时时间不能为0,请重新输入", "警告");
                            //
                        }

                        //进度条初始化
                        progressBar1.Value = 0;
                        progressBar1.Maximum = Timer_Value;

                        break;
                    }
                case 1:
                    {
                        timer1.Stop();
                        Timer_Status = 2;
                        button1.Text = "继续计时";
                        break;
                    }
                case 2:
                    {
                        timer1.Start();
                        Timer_Status = 1;
                        button1.Text = "暂停计时";
                        break;
                    }
                default:
                    {

                        break;
                    }


            }
        }

        //定时按钮单击事件
        private void timer1_Tick(object sender, EventArgs e)
        {


            Timer_Count++;
            textBox1.Text = Timer_Value-Timer_Count + " 秒";

            //更新进度条
            progressBar1.Value = Timer_Count;


            if (Timer_Count == Timer_Value)
            {
                timer1.Stop();
                Timer_Count = 0;
                System.Media.SystemSounds.Asterisk.Play();

                button1.Text = "计时结束";
                
                MessageBox.Show ("定时时间到","提示");
                button1.Text = "开始定时";

                comboBox1.Enabled = true;  //关闭时间选择
                comboBox2.Enabled = true;


                comboBox1.Text = "45";  //初始化为45分钟
                comboBox2.Text = "0";

                button2.Enabled = false;

                Timer_Status = 0;
                progressBar1.Value = 0;


                
            }

        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click_1(object sender, EventArgs e)
        {

            if(Timer_Status > 0)
            {
                Timer_Value = 0; //定时值
                Timer_Count = 0;
                Timer_Status = 0;
                progressBar1.Value = 0;
                textBox1.Text= "0";
            }



            timer1.Stop();
            Timer_Count = 0;

            button1.Text = "开始定时";

            comboBox1.Enabled = true;  //关闭时间选择
            comboBox2.Enabled = true;


            comboBox1.Text = "45";  //初始化为45分钟
            comboBox2.Text = "0";

            button2.Enabled = false;

            Timer_Status = 0;
            Timer_Value = 0;
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/786940.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

化妆品3D虚拟三维数字化营销展示更加生动、真实、高效!

随着人们越来越追求高速便捷的生活工作方式&#xff0c;企业在营销市场也偏国际化&#xff0c;借助VR全景制作技术&#xff0c;将企业1:1复刻到云端数字化世界&#xff0c;能带来高沉浸式的逼真、震撼效果。 通过我们独特的漫游点自然场景过渡技术&#xff0c;您将置身于一个真…

AWS无服务器 应用程序开发—第十七章 Application Composer

Application Composer 是 AWS 提供的一种可视化工具,用于设计和构建无服务器应用程序。它通过拖放界面简化了无服务器架构的创建过程,使开发者能够更直观地设计和配置应用程序的各个组件。 主要功能 可视化设计 通过拖放界面,开发者可以轻松地添加和配置 AWS 资源,如 L…

NVIDIA RTX 4090解析:卓越的性能表现带来全新的AI探索高度

前言 NVIDIA GeForce RTX 4090 在性能、效率和 AI 驱动的图形领域实现了质的飞跃。这款 GPU 采用 NVIDIA Ada Lovelace 架构&#xff0c;配备 24 GB 的 GDDR6X 显存。此外&#xff0c;RTX 4090还引入了多项创新技术。例如&#xff0c;它支持 DirectX12Ultimate&#xff0c;能够…

B站启用adblock插件导致无法看到评论

1 进入adblock插件的设置页面 2 进入自定义规则页面&#xff0c;编辑过滤规则 删除掉这一项 www.bilibili.com##P 然后&#xff0c;点击保存&#xff1b; 刷新页面就可以看到B站评论区的评论了。

[21] Opencv_CUDA应用之使用Haar级联的对象检测

Opencv_CUDA应用之使用Haar级联的对象检测 Haar级联使用矩形特征来检测对象,它使用不同大小的矩形来计算不同的线和边缘特征。矩形包含一些黑色和白色区域,如下图所示,它们在图像的不同位置居中 类Haar特征检测算法的思想是计算矩形内白色像素和黑色像素之间的差异这个方法的…

Mysql数据库两表连接进行各种操作

一&#xff0c;创建两个表emp和dept&#xff0c;并给它们插入数据 1.创建表emp create table dept (dept1 int ,dept_name varchar(11)) charsetutf8; 2.创建表dept create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int) cha…

音视频开发—FFmpeg处理流数据的基本概念详解

文章目录 多媒体文件的基本概念相关重要的结构体操作数据流的基本步骤1.解复用&#xff08;Demuxing&#xff09;2.获取流&#xff08;Stream&#xff09;3. 读取数据包&#xff08;Packet&#xff09;4. 释放资源&#xff08;Free Resources&#xff09;完整示例 多媒体文件的…

如何写出一篇高质量的新闻稿,纯干货

对于企业宣传来说&#xff0c;新闻稿的发布是常用的一种宣传推广的营销方式&#xff0c;新闻稿可以让消费者及时了解企业的最新发展动态&#xff0c;增加企业品牌的曝光度。 一篇高质量新闻稿不仅能作为品牌背书&#xff0c;还很可能会被各大媒体转载&#xff0c;短时间内提高企…

分类模型的算法性能评价

一、概述 分类模型是机器学习中一种最常见的问题模型&#xff0c;在许多问题场景中有着广泛的运用&#xff0c;是模式识别问题中一种主要的实现手段。分类问题概况起来就是&#xff0c;对一堆高度抽象了的样本&#xff0c;由经验标定了每个样本所属的实际类别&#xff0c;由特定…

【基于R语言群体遗传学】-11-二倍体适应性进化

之前的博客&#xff0c;我们讨论了正选择在单倍体中的情况&#xff0c;可以先学习之前的博客&#xff1a; 群体遗传学_tRNA做科研的博客-CSDN博客 分子适应的经典观点是正选择。对于一个新的突变在进化意义上起作用&#xff0c;它必须在罕见时通过选择增加。之前例子中有选择系…

【深度学习基础】环境搭建 linux系统下安装pytorch

目录 一、anaconda 安装二、创建pytorch1. 创建pytorch环境&#xff1a;2. 激活环境3. 下载安装pytorch包4. 检查是否安装成功 一、anaconda 安装 具体的安装说明可以参考我的另外一篇文章【环境搭建】Linux报错bash: conda: command not found… 二、创建pytorch 1. 创建py…

园区、社区、乡村的智能管理

智慧园区、社区、乡村管理系统是现代信息技术在城市化进程中的重要应用,它们通过集成多种技术手段,实现对园区、社区、乡村的全面、高效、智能化管理。以下是对这三种管理系统的详细阐述: 一、智慧园区管理系统 1. 定义与目的 智慧园区管理系统是运用物联网、云计算、大数…

深入解析【C++ list 容器】:高效数据管理的秘密武器

目录 1. list 的介绍及使用 1.1 list 的介绍 知识点&#xff1a; 小李的理解&#xff1a; 1.2 list 的使用 1.2.1 list 的构造 知识点&#xff1a; 小李的理解&#xff1a; 代码示例&#xff1a; 1.2.2 list 迭代器的使用 知识点&#xff1a; 小李的理解&#xff1…

来自工业界的开源知识库 RAG 项目最全细节对比

背景介绍 之前详细整理过来自工业界的不少开源 RAG 项目&#xff1a; 有道 QAnythingRAGFlowlangchain-chatchat中科院 GoMateDifyFastGPT 群里一直看到有小伙伴询问在实际的业务需求中如何选择合适的 RAG 项目&#xff0c;本文就详细对比一下这些 RAG 项目。考虑到目前实际…

SouthMap:地理信息系统的戏剧性变革

在这喧嚣的城市中&#xff0c;工程师们的生活总是充满了戏剧性的起伏与跌宕。作为一名长期使用SouthMap的地理信息系统&#xff08;GIS&#xff09;工程师&#xff0c;我深知每一个项目背后所蕴含的心血与汗水。今天&#xff0c;我想与大家分享一款令我感触颇深的软件——South…

关于Python的类的一些理解

才发现python的类对象只能调用类方法 我想使用对类对象a使用系统调用的len方法就会报错 2.类对象a是什么&#xff1f; 答&#xff1a;是所有的带有self的成员变量 举例说明&#xff1a;红色的就是a里面的东西 class A:def __init__(self,data):self.datadataself.b1self.d{a…

tableau树形图制作 - 7

树形图制作 1. 树状图绘制-11.1 选择属性1.2 智能选择树状图1.3 颜色设置 2. 树状图绘制-22.1 标签属性选择2.2 树状图绘制2.3 颜色设置2.4 设置标签2.5 设置筛选器 3. 树状图绘制 - 33.1 选择行列3.2 树状图转换3.3 统计转换3.4 颜色设置3.5 标签设置3.6 筛选器设置 1. 树状图…

值得收藏!推荐10个好用的数据血缘工具【送书活动】

目录 前言01 Apache AtlasApache Atlas核心功能优缺点分析适用场景 02 Datahub核心功能优缺点分析适用场景 03 Gudu SQLFlow核心功能优缺点分析 04 FineBI适用场景 05 亿信华辰智能数据治理平台核心功能 06 飞算SoData数据机器人八大特性 07 Informatica的数据平台主要特点 08 …

Studying-代码随想录训练营day33| 动态规划理论基础、509.斐波那契函数、70.爬楼梯、746.使用最小花费爬楼梯

第33天&#xff0c;动态规划开始&#xff0c;新的算法&#x1f4aa;(ง •_•)ง&#xff0c;编程语言&#xff1a;C 目录 动态规划理论基础 动态规划的解题步骤 动态规划包含的问题 动态规划如何debug 509.斐波那契函数 70.爬楼梯 746.使用最小花费爬楼梯 总结 动态…