C#
文章平均质量分 61
C# net framework 窗体经验小结
火星papa
积累知识 沉淀心态 未来可期
展开
-
C# 构建可定时关闭的异步提示弹窗
我们在最常用最简单的提示弹框莫过于MessageBox.Show( )的方法了,但是使用久了之后,你会发现这个MessageBox并不是万能的,有事后并不想客户去点击,或者因为非异步运行,而卡住当前线程的运行,于是,就产生了一个只需要提示不需要点击确认的异步弹框需求。可以看到下面的程序中我们建立了一个Form窗体,在窗体中我们除了定义了一些我们需要显示的属性,同时,也定义和启动了一个timer窗体定时器,等待定时器完成一次定时后进入tick,停止定时器以及关闭当前窗体Close()。原创 2024-04-06 14:12:32 · 465 阅读 · 0 评论 -
C# 基于MQTT创建客户端的可靠数据传输
MQTT(Message Queuing Telemetry Transport)即 消息队列遥测传输,是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它也是工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。原创 2023-12-23 21:14:42 · 1581 阅读 · 0 评论 -
C# 使用Thread类建线程
线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。线程是我们程序常用的并行运行控制手段,进程可以是单线程也可以使多线程,这里我用C# 中的Thread类构建线程来简要地说一下线程的基础使用。原创 2023-11-01 23:50:19 · 403 阅读 · 0 评论 -
C# 实现ESC退出窗口的几种方法
实现ESC退出窗口的几种方法引言方法一 同步按钮法方法二 监听按键法方法三 隐藏按钮法最后引言我们通常用通过点击取消按键或者右上角的“X”盒子退出的方法来实现关闭当前Form窗体。但要使用按键ESC退出关闭窗口就显得更加高级了,实现起来并不困难,但用户体验会提升一个档次,这里我讲一讲我小结的几个方法,我用的VS2019。原创 2023-01-10 20:02:40 · 6160 阅读 · 0 评论 -
用中文写C#代码
在这里我想说的是C#作为大家熟知的语言,其实已经考虑到了中文的书写,VS2019中,我发现很多地方都可以使用中文,包括工程名、类名、函数名、变量名、控件名、枚举等等等等,都可以写成中文,并不影响编译和使用。最让我觉得方便的是,使用中文替代变量后,基本上就没有写注释的必要了,特别是很多地方使用的枚举项,让我屡试不爽。前几年至今,中文编程语言一直就是一个热门话题,有的说是写中文编程破坏了编程员的编程习惯,中文编程没有任何意义,也有的说是中国计算机软件的进步,脱离的英文的束缚,大大方便了更多人学习编程。原创 2022-11-15 15:25:29 · 1767 阅读 · 0 评论 -
C# 用VS原生CheckBox控件制作漂亮的开关
CheckBox是VS中常用的控件之一,它是的本质就是一个开关,一个bool型变量。作为开关控制控件非常好用,但是变得很好看很漂亮就感觉要另辟蹊径了,网上有都很多使用相框PictureBox或者按键Button结合bool变量来实现,还有的使用绘图等方式自定义一个控件,我认为这些方法要么抛弃了CheckBox这种便捷的开关功能,要么使用了繁琐复杂的方法来实现,有些得不偿失。这里我介绍使用VS原生的CheckBox,以最简单的方法实现漂亮的开关控件。原创 2022-11-14 18:18:17 · 2394 阅读 · 0 评论 -
C# numericUpDown之小技巧--读取输入的字符
numericUpDown是C#的常用的控件之一,它是专门用来做数字输入的,我最常用到的属性包括他小数位数(DecimatePlaces属性)、最大最小值(Maximum属性Minimum属性)以及获取数值(value属性), 使用过的人都会发现value值这里往往存在一个小问题,value值虽然一直存在也不会超出范围,但是并不完全是我们看到输入的内容,那么,对于异常输入或者超出范围可以输入字符如何处理。这里我们就讲解一下具体解决方法。原创 2022-10-14 18:40:38 · 1834 阅读 · 0 评论 -
C# 通过Opacity隐藏背景窗体
通过窗体弹出另一个窗体的时候,不想显示背后的窗体,怎么办?当然,可以通过hide()方法来隐藏窗体。这里介绍另一种方法通过控制Opacity,即,通过不透明度来控制窗体隐藏。可以看到每一个窗体的属性中的icon类别中有一项叫做Opacity的选项,他的用途就是改变窗体的透明度,准确的解释为控件的不透明度百分比。它的值是0%-100%,如果是0%就是完全透明,如果是100%就是完全不透明。原创 2022-10-03 12:37:54 · 616 阅读 · 0 评论 -
C# Form默认的确认和取消按钮
在C#的form工程中,微软提供了非常方便的确认和取消快捷默认按键设置,该设置直接可以在窗体属性中进行设置。下面以VS2019 为例简单介绍。原创 2022-10-03 11:17:11 · 3988 阅读 · 0 评论 -
C# Queue队列
目录前言一、队列的新建二、入队三、出队四、清除队列前言我们在处理数据接收或发送的时,为避免数据量较多出现顺序混乱或是多线程共享内存造成数据覆盖问题, 经常需要对数据处理做到先进先出(FIFO)。于是我们经常要队列(Queue),顾名思义也就是和平时排队一样,一个一个的处理,遵循先来后到,不插队,不优先。在C#中,队列封装的很好,使用起来也很方便。它属于系统类的集合(Collection)类中...原创 2022-08-05 12:13:49 · 5101 阅读 · 0 评论 -
C# 字符串的内插
您可能不知道C#字符串的表达方式有一种较为简洁的表达方式,即,内插方式,这种方式表达起来更加简单直观,使C#用起来更像高级语言。今天按照常用的方法举几个简单的实例表述一下。原创 2022-07-19 11:07:55 · 2757 阅读 · 0 评论 -
C# FTP上传和下载文件操作
我们使用C# 需要通过FTP访问服务器时,那么上位机就要作为客户端,通过连接FTP服务来上传下载文件。这里用实际代码和简要的文字描述一下。 见代码描述段中的构造函数 FtpOperation(),在初始化类的同时将用户各个参数初始化。 首先,将服务器IP传递过来,这个是第一重要的。其次,将用户ID、密码以及路径信息获取。最后,将其它参数赋初值。 ...原创 2022-07-14 15:12:23 · 5124 阅读 · 2 评论 -
C# 弹出窗口 show()和showdialog()
我们在构建C# Form窗口的时候经常需要到弹出新的窗口,那么接着就会如何弹出窗口的疑问。这里介绍最常见的两种弹窗方法show()和showdialog()。我在VS2019中构建一个简单的工程来讲解让他们之间的区别。大家也可以动手建一个体验他们之间的区别。 ...原创 2022-07-10 15:30:37 · 10996 阅读 · 3 评论 -
C# VS2019 #region和#endregion的使用
#region和#endregion 是自定义折叠区域的一个宏定义方法,在代码较多时,我们通常将同类的代码归类,然后将其框在一对#region和#endregion之间。对于较大一点的工程来说非常好用,非常方便自己管理代码。 #region表示区域开始,同行右侧上描述名称,#endregion则是区域结尾标识。折叠前后如下图一所示:图一 折叠前图二 折叠后 可以使用点击区域首行左边的加减符来展开和折叠你的区域。 批量操作最为关键,可以是通过右键或者快捷方式来全部折叠后(见图三)......原创 2022-07-05 15:21:55 · 6101 阅读 · 0 评论 -
C# DataGridView控件的基础应用实例
DataGridView我把他叫做网格数据控件 。我们在显示表格数据的时候,经常会用想到用它, 他就像Excel表格一样。我们知道只要是数据表,就一定逃不掉表的增删查改操作。 该篇,我在VS2019的环境下通过demo实例来实现DataGridView控件的一系列功能,包括添加一行数据、切换允许修改单元格、复制选择数据、复制所有数据、读一行数据、读取所有数据、查找记录、删除一行数据、删除一行数据、删除多行数据、清除所有行以及清除所有列。 .........原创 2022-07-03 16:38:01 · 10804 阅读 · 9 评论 -
C# 选项卡tabControl子项tabPage的显示和隐藏
我们在使用选项卡tabControl时,很多情况需要我们隐藏或者显示出我们指定的tabPage的页面。这里用VS2019简述基本操作和代码控制。 首先在工具箱中找到容器中的TabControl。将其拖到Form界面中,可以自由添加修改控件属性。往往我们先要将,会出现的页面先全部添加好。添加和删除页面在属性的最下方——添加选项卡和删除选项卡。 &emsp我们这里利用其父子控件关系来实现最简单的控制。onoff为true时,显示该选项卡tabPage2,其父控件名称叫做tab原创 2022-06-20 17:46:37 · 11857 阅读 · 0 评论 -
C# Form 鼠标悬停Tip显示
目录 1、添加控件2、修改控件属性3、修改控制对象3、最后 为了方便和详细解释说明C# form界面的使用,想描述设置范围或者注意事项等等内容,又不想写很多文字在界面上。这时候我们就可以使用VS的ToolTip控件,就可以在鼠标放在指定控件上面的时候能弹出一个小框的文字说明小提示,这里以VS2019为例说一下它是如何添加使用的。1、添加控件 在Form界面中将左侧工具箱中拖入ToolTip控件到界面中,接着可以看到界面下方会多出一个控件叫做toolTip1的控件。2、修改控件属性原创 2022-04-22 14:55:04 · 3194 阅读 · 0 评论 -
C# 结构体列表的使用
目录 引言1、结构体定义2、结构体列表初始化3、结构体列表赋值4、结构体列表遍历5、结构体列表删除6、结构体列表全清除引言 我们在使用大量相同的结构体的时候,就可以使用结构体列表来实现是十分不错的选择,也就是我们说的List <struct>。我简要小结一下其使用方法。1、结构体定义 结构体定义如下。struct NR_BCH_PROP{ public long arfcn; public long center_freq;}2、结构体列表初始化原创 2022-04-22 11:59:50 · 1807 阅读 · 0 评论 -
C# 带构造函数的结构体
可能您不知道,原来C#的结构体中也可以使用构造函数 ,这里我用示例表述一下结构体中构造函数的使用。示例如下://结构体定义public struct NR_BCH_PROP{ public long arfcn; public long center_freq; //带参数的构造函数 public NR_BCH_PROP(long a, long b) { arfcn = a; center_fr原创 2022-04-22 10:33:42 · 1866 阅读 · 0 评论 -
C# 常用数据类型转换和格式判断
C# 常用数据类型转换和格式判断目录 C# 常用数据类型转换和格式判断目的1、 字符串转其它2、字符串判断是否为数字3、 整形转其它4、 字节数组转其它5、 结构体和字符数组互换6、 IP地址判断和转换格式7、 系统时间获取和对比目的 在使用C#的使用的时候经常要用到数据类型的转换或数据判断,我们经常将其包含到一个自定义类中,方便自己调用。这里小结一下我自己的汇总。1、 字符串转其它 /// <summary> /// 字符串转字节数组原创 2022-03-04 12:46:33 · 2518 阅读 · 0 评论 -
C# SCP访问SSH
C# SCP访问SSH基本概念SCP(secure copy)安全拷贝 意思是用来进行安全远程文件拷贝。SSH (Secure Shell )安全外壳协议 他是建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。一、获取第三方链接库 因为C#没有相关直接使用的库,因此,我们一般使用的是第三方库。 获取第三方动态链接库Renci.SshNet.dll,可以在我的上传资料中获取。获原创 2022-03-03 17:41:25 · 1301 阅读 · 0 评论 -
C# Form窗体添加启动画面
C# Form窗体添加启动画面目录C# Form窗体添加启动画面一、找图片二、添加窗体三、提前加载图片窗体四、自定义显示代码 如果要使你的window软件界面显得牛逼点,就来个驱动图片加载画面吧,同时在开机画面做一些基本的注册识别、进程读取、数据加载等常规操作。这里就小结一下我使用的常规方法。一、找图片 首先,找到您想使用的开机图片,尽量大场景或logo图片,可以达到让人耳目一新的感觉。图片大小适宜即可。建议尽量和显示屏幕比例一致。二、添加窗体 1、新建一个Form窗体类,用来显示图片。原创 2022-02-12 13:45:06 · 3508 阅读 · 1 评论 -
C# 文件、文件夹常规创建删除操作实例
C# 文件、文件夹常规创建删除操作实例 C#的文件操作的功能是非常丰富的。他们大多来自System.IO类,比如:File、Directory、BinaryReader、BinaryWriter、DirectoryInfo、FileStream、MemoryStream、Path、StringWriter等等。当然,其它很多类中也包含文件操作。 这里在用C# 举几个常见实例,来说明文件、文件夹的存在查询、创建和删除的几个基本方法,以及如何浏览打开。目录C# 文件、文件夹常规创建删除操作实例一、原创 2021-12-15 16:09:00 · 1347 阅读 · 0 评论 -
C# 委托和事件委托
C# 本文描述了什么是委托,什么是事件委托,如何他们,并使用C#代码描述了如何实现的。目录:什么是委托?1、概念2、代码描述委托什么是事件委托?1、概念2、代码描述事件委托原创 2021-12-14 18:38:26 · 988 阅读 · 2 评论 -
C# TCP/IP网络数据传输及实现
国际标准化组织(ISO)在1985年研究的网络互连模型,定义了OSI(Open System Interconnect),即开放式系统互联。 也叫OSI参考模型,OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)。这个框架定义了理论的标准模型,也是通讯学习基础的必修内容。 实际网络中TCP/IP协议中使用“TCP/IP五层模型”,与其各层有各自的协议, 来保证能互联网中正常通讯。下面用表格简述了模型的对应关系。..原创 2021-12-14 15:39:34 · 17380 阅读 · 8 评论 -
C# Form窗体打开BIN文件并读取二进制数据
C# Form窗体打开BIN文件并读取二进制数据目标:使用C# Form窗体打开BIN文件并读取二进制数据使用的关键类:C#的作为高级语言文件批量读取一般都是使用文件流处理,这离不开C#的System.IO 类的强大功能。使实现过程:这里简述一下实现过程:1、使用对话框类OpenFileDialog 来打开BIN文件类型的文件获取文件名路径2、使用FileStream类, 用他来打开文件获取文件长度大小3、使用读二进制类BinaryReader,按照字节来获取内容4、最后连接成字原创 2021-10-20 15:18:57 · 4353 阅读 · 0 评论 -
C# VS2019 Form 图标的修改
C# Form 图标的修改引言图标是用户使用软件的第一印象,第一印象很重要。好的软件UI设计也包括ICO图标的设计。在C#的Form窗口框架程序设计时,图标的是有两处需要修改,一个是Form窗口的左上角图标,一个是EXE可执行文件的图标。这里用VS2019中的图标修改为例说明一下图标的修改。一、 窗口的左上角图标1、在串口Form的属性中找到Icon项直接选择图标(.ico)路径,窗口左上角会自动更新选择更新的图标。预览效果如下:一、可执行文件的图标1、找到工程属性位置,可以在解原创 2021-10-15 18:06:39 · 3595 阅读 · 0 评论 -
C# 串口接收的优化处理
C# 串口接收的优化处理引言在VS中实用串口接收通讯的时候往往会遇到等待数据或需要解决接收数据效率的问题。这里小结一种比较实用的的方法,其通过线程接收来控制协调,约束时间和数据极限大小来输出处理,大大提高了数据处理的效率。这里为了简要说明,省略了线程部分开启部分。一段经典的代码往往解决用户实际实用的痛点又能提高代码的效率。......namespace app{ public partial class Form1 : Form { private co原创 2021-10-09 18:43:07 · 3302 阅读 · 0 评论 -
C# 扫描和打开串口
C# 扫描和打开串口引言关于C#Form窗口框架下使用串口通信中扫描串口和打开串口操作是最基础最重要的步骤。在这里我用一个demo小程序以最简单的方式实现,小结一下。一、建工程界面1、新建C# window窗体 (.net Framework)工程;2、界面添加一个Combox,命名为comport;添加两个按键,分别命名为button_open和button_close。修改属性中的文字属性等,其它外观功能属性可自由定义。二、添加代码代码中,我们需要用到按键的单击事件、初始化扫描原创 2021-10-09 18:02:45 · 4991 阅读 · 0 评论 -
C# 富文本框以当前时间保存log文件
C# 富文本框以当前时间保存文件提示:这里简述 RichTextBox以当前时间保存文件的简易方法一、新建工程1、新建C# window窗体 (.net Framework)工程;2、将Form框架中添加RichTextBox控件,将属性命名为richTextBox_txt;添加按键Button控件命名为button_save,文字显示“保存文件”。二、添加代码定义按键单击事件,编辑添加代码。using System.Data;using System.Drawing;using S原创 2021-10-09 15:55:25 · 646 阅读 · 0 评论 -
C# VS2019 NuGet 添加安装串口类
C# NuGet 添加安装串口类引言在使用C#窗口通信中串口是经常被用到的通信接口,我们通常使用system.io.port 中调用类以及方法。但如果安装的VS没有安装对应的库,是需要通过 NuGet 添加安装串口类的。否者会提示(未能在命名空间‘“system.io.port ”找到类名“SerialPort”)这里小结一下VS2019中的安装过程。小结1、 找到菜单的 工具 —>NuGet包管理器 —>管理解决方案的 NuGet 程序包2、搜索SerialPort 或者syst原创 2021-10-09 15:00:11 · 1526 阅读 · 0 评论 -
C# VS2019 Form 状态栏添加系统时间实时刷新
C# VS2019 Form 状态栏添加系统时间并实时刷新C#学习—— 状态栏添加系统时间并实时刷新一、准备条件1、使用状态栏标签控件2、使用定时器定时刷新二、操作步骤1、新建C# window窗体 (.net Framework)工程;2、在Form 窗体下方添加工具箱 的statusStrip1控件,单击目标添加一个标贴项目toolStripStatusLabel1,并修改属性名称。3、添加定时器timer,并修改属性中的名称和时间间隔周期,这里1000,表示1000ms,也就是1原创 2021-10-09 11:55:57 · 3703 阅读 · 0 评论 -
C# VS2019 Form状态栏中添加主页链接
C# VS2019 Form状态栏中添加主页链接 内容:C# 学习——— Form框架 状态栏中添加主页链接操作流程:1、新建C# window窗体 (net Framework)工程;2、在工具箱中添加statusStrip1控件,单击目标添加一个标贴项目toolStripStatusLabel1;3、修改标贴项目属性,修改名称为自己需要的链接外观名称,自定义控件名称,行为设置Islink为ture。4、添加此标签的单击事件using System;using System.Coll原创 2021-10-09 11:17:26 · 392 阅读 · 0 评论