C#学习笔记3:Windows窗口计时器

news2024/12/29 8:47:24

今日继续我的C#学习之路,今日学习自己制作一个Windows窗口计时器程序:

文章提供源码解释、步骤操作、整体项目工程下载

完成后的效果大致如下:(可选择秒数,有进度条,开始计时按钮等) :

目录

1、新建Windows窗口项目:

 2、调出工具箱设计窗口样式:

3、按钮摆放初步测试:

4、定时器窗口程序的设计:

4.1:组件的选择添加:

4.2:编程与逻辑:

 4.3:最终效果:

5、整体项目工程文件下载:

1、新建Windows窗口项目:

因为要做的是Windows窗口倒计时项目,所以新建项目时略有不同:

这次选择的是Windows窗体应用(.NET Framework)

 2、调出工具箱设计窗口样式:

新建号项目后我们就看到有了窗口Form文件了,可以对其进行样式的设计:

点击左上角视图---工具箱,即可调出工具箱:

然后公共控件里就可进行摆放控件了:

在form1设计示意图中,双击控件就可以对其进行程序上的设置了

右击控件可以对其进行属性设置:

3、按钮摆放初步测试:

这里我设计了俩个button和一个textbox来做简单交互:


        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "鸡鸡鸡";
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox1.Text = "超绝肌肉线条";
        }

效果如下:

按button1名为蔡徐坤,显示鸡鸡鸡

按button名为宋亚轩,显示超绝肌肉线条

4、定时器窗口程序的设计:

4.1:组件的选择添加:

首先选中整个窗体,右下角属性中可以为其 改名为定时器:

 再添加一个button,更名为开始计时:

再添加俩个label控件,用于必要的说明解释:

在添加一个combobox用于选择时长:

 再添加一个progressbar作进度条:

 工具栏组件中选择添加一个Timer:别忘记在属性中设置time的频率 ,

因为毫秒为单位,所以需要设置改为1000:

最后插入一个label3用于显示剩余时间:(记得清空名字) :

 

最后所有控件摆放如下:

4.2:编程与逻辑:

form1的整体代码与注释如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection.Emit;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.ProgressBar;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace Count_Down
{
    public partial class Form1 : Form
    {
        int count;//用于定时器计数
        int time;//存储设定的定时值

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int i;
            for (i = 1; i < 100; i++)// 计数范困(0 - 99)
            {
                comboBox1.Items.Add(i.ToString() + " 秒");// 初始化下拉框内容(数字后加一个空格便于程
            }

        }
        private void timer1_Tick_1(object sender, EventArgs e)//定时器事件
        {
            count++;//记录当前过了几秒
            //C#中ToString方法返回一个对象实例的字符串,在默认情况下将返回类类型的限定名
            label3.Text = (time - count).ToString() + "秒";//显示剩余时间
            progressBar1.Value = count;//设置进度条进度
            if(count==time)
            {
                timer1.Stop();//时间到,停止计时
                System.Media.SystemSounds.Asterisk.Play();//提示音
                MessageBox.Show("鸡!!!计时结束", "提示");
                count = 0;//使count归0,便于下次计时
            }

        }

        private void button1_Click_1(object sender, EventArgs e)//开始计时按钮事件
        {
            string str = comboBox1.Text;//将下拉框内容添加到一个变里中
            string data = str.Substring(0,2);
            time = Convert.ToInt16(data);//得到设定定时值(整形)
            progressBar1.Maximum = time;//进度条最大数值
            timer1.Start();//开始计时
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void progressBar1_Click(object sender, EventArgs e)
        {

        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }
    }
}

ToString():

 4.3:最终效果:

5、整体项目工程文件下载:

https://download.csdn.net/download/qq_64257614/89035710

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一周学会Django5 Python Web开发-Django5模型定义

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计41条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

并发VS并行

参考文章 面试必考的&#xff1a;并发和并行有什么区别&#xff1f; 并发&#xff1a;一个人同时做多件事&#xff08;射击游戏队友抢装备&#xff09; 并行&#xff1a;多人同时处理同一件事&#xff08;射击游戏敌人同时射击对方&#xff09;

业务服务:xss攻击

文章目录 前言一、使用注解预防1. 添加依赖2. 自定义注解3. 自定义校验逻辑4. 使用 二、使用过滤器1. 添加配置2. 创建配置类3. 创建过滤器4. 创建过滤器类5. 使用 前言 xss攻击时安全领域中非常常见的一种方法&#xff0c;保证我们的系统安全是非常重要的 xss攻击简单来说就…

酷开科技:OTT领域的璀璨明珠

在广袤的科技海洋中&#xff0c;酷开科技犹如一颗璀璨的明珠&#xff0c;以其独特的魅力和卓越的实力&#xff0c;引领着OTT领域的发展。自2014年前后&#xff0c;彩电业遭遇三十年来首次的销量滑坡&#xff0c;整个行业陷入了“寒冬”。在这个艰难的时刻&#xff0c;酷开科技却…

pure-admin

vue-pure-admin: &#x1f525; 全面ESMVue3ViteElement-PlusTypeScript编写的一款后台管理系统&#xff08;兼容移动端&#xff09;

GBU3510-ASEMI开关电源整流桥GBU3510

编辑&#xff1a;ll GBU3510-ASEMI开关电源整流桥GBU3510 型号&#xff1a;GBU3510 品牌&#xff1a;ASEMI 封装&#xff1a;GBU-4 平均正向整流电流&#xff08;Id&#xff09;&#xff1a;35A 最大反向击穿电压&#xff08;VRM&#xff09;&#xff1a;1000V 产品引线…

【jenkins+cmake+svn管理c++项目】windows修改jenkins的工作目录

jenkins默认的存放源码的workspace是&#xff1a; C:\Users\用户\AppData\Local\Jenkins\.jenkins\workspace。由于jenkins会拉取大量的源代码以及编译生成一些文件&#xff0c;我希望我能自己指定目录作为它的工作空间&#xff0c;放在这里显然不太合适。 那么修改目录的方式有…

windows允许指定IP段访问本地端口

虚拟机内部应用有时候需要访问windows的一些端口&#xff0c;例如数据库或Redis等&#xff0c;默认情况下&#xff0c;需关闭windows上的防火墙才可正常访问。本文通过在防火墙设置允许指定IP段进行访问来处理&#xff0c;不用每次操作都关闭防火墙。 入站规则-》新建规则 完成…

Memcached分布式内存对象数据库

一 Memcached 概念 Memcached 是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数&#xff0c;从而提高动态、数据库驱动网站的速度。 二 在架构中的位置 Memcached 处于前端或中间件后…

(二)Eureka服务搭建,服务注册,服务发现

1.Eureka注册中心 假如我们的服务提供者user-service部署了多个实例&#xff0c;如图&#xff1a; 存在几个问题&#xff1a; order-service在发起远程调用的时候&#xff0c;该如何得知user-service实例的ip地址和端口&#xff1f;有多个user-service实例地址&#xff0c;…

开源博客项目Blog .NET Core源码学习(11:App.Core项目结构分析)

开源博客项目Blog的App.Core项目主要定义数据库表对应的数据类&#xff0c;同时定义配置文件读取、日志记录、辅助缓存等辅助类。App.Core项目安装的Nuget包不多&#xff0c;仅包括SqlSugarCore和Microsoft.Extensions.DependencyInjectio两类。   App.Core项目的顶层文件夹如…

1.0 html(1)

html 一、基本介绍 1、定义&#xff1a;html是一种超文本标记语言&#xff0c;也是一种标识性语言&#xff08;不是编程语言&#xff09; 标记&#xff1a;记号&#xff08;绰号&#xff09; 超文本&#xff1a;就是页面内容可以包含图片、链接&#xff0c;音乐&#xff0c…

【软考】设计模式之状态模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. 优缺点5.1 优点5.2 缺点 6. java示例6.1 非状态模式6.1.1 问题分析6.1.2 接口类6.1.2 实现类6.1.3 客户端6.1.4 结果截图 6.2 状态模式6.2.1 抽象状态类6.2.2 状态类6.2.3 上下文类6.2.4 上下文类 1. 说明 1.允许一个对象在其内部状…

pycharm使用远程服务器的jupyter环境

1、确保服务器上安装了jupyter,如果没有&#xff0c;执行下面命令安装 pip install jupyter2、启动jupyter notebook服务 jupyter notebook --no-browser --port8888 --ip0.0.0.0 --allow-root表明在服务器的8888 端口上启动 Jupyter Notebook&#xff0c;并允许从任何 IP 地…

阿里云ESC云服务器搭建手册

1.开通阿里云ESC云服务 1.1 打开阿里云官网 https://www.aliyun.com/ 自行注册登录 1.2 选择产品 1.3 点击免费试用 新用户可以免费试用3个月 1.4 选择服务器配置 1.5 选择操作系统 创建服务器实例的时候会自动帮我们创建一个操作系统 1.6 点击立即试用 1.7 创建成功后点击前往…

鸿蒙HarmonyOS应用开发——组件级配置

在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。 应用包名配置 应用需要在工程的AppScope目录下的 app.json5配置文件 中配置bundleName标签&#xff0c;该标签用于标识应用…

《MobileFaceNet:一种用于移动设备实时人脸验证的高效CNN》论文阅读

最近正好做到人脸识别的一点工作&#xff0c;在查阅资料的时候看到了这篇文章&#xff0c;就想花点时间来读一下。这里是自己的阅读记录&#xff0c;英语水平不够借助翻译软件来读的&#xff0c;感兴趣可以看下&#xff0c;也可以自行阅读原始英文论文。 摘要 我们提出了一类非…

企业级快速开发框架 nbsaas-boot 1.1.8-2024 发布了

<parent><groupId>com.nbsaas.boot</groupId><artifactId>nbsaas-boot</artifactId><version>1.1.8-2024</version> </parent> 本次更新内容 1. 重构代码生成器&#xff0c;采用类提取和字段提取两种方式&#xff0c;提取功能…

神经网络代码实现(用手写数字识别数据集实验)

目录 一、前言 二、神经网络架构 三、算法实现 1、导入包 2、实现类 3、训练函数 4、权重参数矩阵初始化 5、参数矩阵变换向量 6、向量变换权重参数矩阵 7、进行梯度下降 7.1、损失函数 7.1.1、前向传播 7.2、反向传播 8、预测函数 四、完整代码 五、手写数字识别 一、前言 …

R语言神经网路模型应用(1)

数据集heart_learning.csv与heart_test.csv是关于心脏病的数据集&#xff0c;heart_learning.csv是训练数据集&#xff0c;heart_test.csv是测试数据集。要求&#xff1a;target和target2为因变量&#xff0c;其他诸变量为自变量&#xff0c;用神经网络模型&#xff08;多层感知…