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

c# combobox集合数据不显示_使用C#开发第一个应用程序

在做单片机开发的时候,我们有时候会用到上位机。上位机就是PC上的一个应用程序,通过这个应用程序,我们可以显示一些来自下位机(如单片机)的数据,可以通过上位机来控制我们的下位机。由于上位机是做成图形化界面的,方便用户使用,所以,做单片机开发也需要掌握上位机的开发。比如我们常用的串口调试助手就是一个简单的上位机。

从今天开始来学习一下如何使用C#语言开发简单的上位机程序,开发平台是Microsoft Visual Studio 2019。今天来写第一个简单的入门程序:倒计时计数器。实现的功能是用户可以自定义倒计时的时间,然后点击开始计时,计时结束后弹出窗口提醒计时时间到。

1、新建一个项目,选择Windows窗体应用

3d128e68dabef2aa2b7f05a8b5017710.png

2、然后我们得到一个空白的窗体,左边的工具箱里有很多控件,我们可以选择按钮、标签、进度条,定时器,下拉列表等。

按钮:button

按钮:button

进度条:progressbar

下拉列表:combobox

文字:label

定时器:timer

点击对应的控件,我们可以在右边修改相应的属性,比如修改按钮的文字等,定时器可以设置它定时的时间,单位是ms,比如写1000就是1秒钟,这在后面编程中会使用到。

b0fde29a502034d70136087b37743310.png

点击对应的控件,我们可以在右边修改相应的属性,比如修改按钮的文字等,定时器可以设置它定时的时间,单位是ms,比如写1000就是1秒钟,这在后面编程中会使用到。这和其他的GUI设置是类似的。

3、接下来就是编程。双击一下窗体就会进入代码里面,并且会自动生成一部分代码。

f043805b93a88730cf609930facedca9.png

然后我们简单分析一下代码。

private void button1_Click(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 Form1_Load(object sender, EventArgs e){
            int i;
            for (i = 1; i 100; i++)//计数范围(1-99)
            {
                comboBox1.Items.Add(i.ToString() + " 秒");//初始化下拉框内容(数字后加一个空格便于程序处理)

            }
            comboBox1.Text = "1 秒";
        }

这一部分代码主要是生成下拉框的内容,1-99秒,注意在秒那里有一个空格,这是一个小技巧,因为后面要提取前两个数字,所以加一个空格可以防止提取到汉字而发生错误。

private void timer1_Tick(object sender, EventArgs e)//定时器事件{
            count++;//记当前秒
            label3.Text = (time - count).ToString() + "秒";//显示剩余时间
            progressBar1.Value = count;//设置进度条进度
            if (count == time)
            {
                timer1.Stop();//时间到,停止计时
                System.Media.SystemSounds.Asterisk.Play();//提示音
                MessageBox.Show("时间到了!!!","提示!!");//弹出提示框
            }
        }

这一部分代码是定时器的,每次定时时间到,然后就计数值加1,当计时等于设定的时间的时候弹出窗口,设置系统提示音,最后停止计时即可。另外就是有一个标签(label)实时显示剩下的时间。

写好这些代码,基本上就完成了。最后点击运行,可以查看效果,点击release可以发布。

总的来说,流程并不是很复杂,就是选择好控件,修改相应的属性,最后进入代码里面将这些关联起来。

我们可以看一下效果

d023631cc03cf7343ef16d2369c5f48b.gif

这只是一个简单的入门程序,后面我们再去和单片机联合起来编写真正的上位机应用程序。

相关文章:

  • cmd运行jar包报错找不到主类_jar包天天见,可是你知道它的运行机制吗?
  • qt tcp通信_(7)基于TCP/IP的网络通信应用程序(TCPClient)
  • jwt token长度限制_OAUTH.令牌存储介绍以及JWT实现强制登出、登录个数控制
  • 空间日志代码_蚂蚁金服研发框架日志隔离解析 | SOFABoot 框架剖析
  • c语言音乐小星星代码_慧编程:编程小课堂NO.1——代码也能唱歌!
  • python即将列入高考吗_Python即将被加入浙江、北京、山东高考科目
  • python实时数据流设计_入门指南:用Python实现实时目标检测(内附代码)
  • docker镜像备份恢复_Docker学习笔记
  • runtimeerror什么原因_什么是内存对齐?Go 是否有必要内存对齐?
  • dubbo源码_Dubbo源码-注册中心
  • python运行不了、显示警告_Python xlrd:禁止显示警告消息
  • linux安装python3环境_Linux环境安装python3
  • 用python打印出一个人的照片_Python用dilb提取照片上人脸的示例
  • getdata提取曲线数据_基于Hypergraph创建曲线(矢量)的结果响应
  • ffmpeg 为取经而来_清华,那个穿越百年而来的白衣少年
  • [nginx文档翻译系列] 控制nginx
  • 【mysql】环境安装、服务启动、密码设置
  • Fabric架构演变之路
  • GraphQL学习过程应该是这样的
  • IDEA 插件开发入门教程
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Mithril.js 入门介绍
  • vagrant 添加本地 box 安装 laravel homestead
  • vue-loader 源码解析系列之 selector
  • Vue实战(四)登录/注册页的实现
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 给第三方使用接口的 URL 签名实现
  • 回流、重绘及其优化
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 聊聊flink的TableFactory
  • 前端路由实现-history
  • 为视图添加丝滑的水波纹
  • Spring第一个helloWorld
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #控制台大学课堂点名问题_课堂随机点名
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (SpringBoot)第七章:SpringBoot日志文件
  • (二)linux使用docker容器运行mysql
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot教学评价 毕业设计 641310
  • (五)MySQL的备份及恢复
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET下的多线程编程—1-线程机制概述
  • @property @synthesize @dynamic 及相关属性作用探究
  • [14]内置对象
  • [20190401]关于semtimedop函数调用.txt
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [C++]类和对象(中)
  • [Git 1]基本操作与协同开发