- 博客(77)
- 资源 (10)
- 收藏
- 关注
原创 C# 构建可定时关闭的异步提示弹窗
我们在最常用最简单的提示弹框莫过于MessageBox.Show( )的方法了,但是使用久了之后,你会发现这个MessageBox并不是万能的,有事后并不想客户去点击,或者因为非异步运行,而卡住当前线程的运行,于是,就产生了一个只需要提示不需要点击确认的异步弹框需求。可以看到下面的程序中我们建立了一个Form窗体,在窗体中我们除了定义了一些我们需要显示的属性,同时,也定义和启动了一个timer窗体定时器,等待定时器完成一次定时后进入tick,停止定时器以及关闭当前窗体Close()。
2024-04-06 14:12:32
732
原创 C# 基于MQTT创建客户端的可靠数据传输
MQTT(Message Queuing Telemetry Transport)即 消息队列遥测传输,是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它也是工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。
2023-12-23 21:14:42
2140
原创 C# 使用Thread类建线程
线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。线程是我们程序常用的并行运行控制手段,进程可以是单线程也可以使多线程,这里我用C# 中的Thread类构建线程来简要地说一下线程的基础使用。
2023-11-01 23:50:19
471
原创 C# 实现ESC退出窗口的几种方法
实现ESC退出窗口的几种方法引言方法一 同步按钮法方法二 监听按键法方法三 隐藏按钮法最后引言我们通常用通过点击取消按键或者右上角的“X”盒子退出的方法来实现关闭当前Form窗体。但要使用按键ESC退出关闭窗口就显得更加高级了,实现起来并不困难,但用户体验会提升一个档次,这里我讲一讲我小结的几个方法,我用的VS2019。
2023-01-10 20:02:40
7308
原创 实现好看的文件选择按钮
网页设计中默认的文件路径输入框,即file控件,由于其外观太朴素,也无法很难改变其属性特征,想隐藏路径名称也不行。但是我们可以通过巧妙的方法改成自己想要的样子。- 如果没有直接改变的好方法,我们可以尝试扬长避短的来绕过其外观短处,只使用我们需要的功能部分。- 这里我将用自定义的按键来替换其外观,而file控件,我将其隐藏掉。它虽然被隐藏了,但是其功能仍在。- 开始动手。
2022-12-29 16:56:24
881
原创 CSS 制作鼠标经过就变立体的按键
按键的效果很多,使用CSS控制颜色字体背景变化都是很常见的,因为它作为外观布局利器,控制简便也是显而易见的。这里我们介绍一下如果通过CSS控制将鼠标经过的时候将鼠标经过按键时候能变成立体效果的方法
2022-12-29 13:57:32
1202
原创 用中文写C#代码
在这里我想说的是C#作为大家熟知的语言,其实已经考虑到了中文的书写,VS2019中,我发现很多地方都可以使用中文,包括工程名、类名、函数名、变量名、控件名、枚举等等等等,都可以写成中文,并不影响编译和使用。最让我觉得方便的是,使用中文替代变量后,基本上就没有写注释的必要了,特别是很多地方使用的枚举项,让我屡试不爽。前几年至今,中文编程语言一直就是一个热门话题,有的说是写中文编程破坏了编程员的编程习惯,中文编程没有任何意义,也有的说是中国计算机软件的进步,脱离的英文的束缚,大大方便了更多人学习编程。
2022-11-15 15:25:29
1920
原创 C# 用VS原生CheckBox控件制作漂亮的开关
CheckBox是VS中常用的控件之一,它是的本质就是一个开关,一个bool型变量。作为开关控制控件非常好用,但是变得很好看很漂亮就感觉要另辟蹊径了,网上有都很多使用相框PictureBox或者按键Button结合bool变量来实现,还有的使用绘图等方式自定义一个控件,我认为这些方法要么抛弃了CheckBox这种便捷的开关功能,要么使用了繁琐复杂的方法来实现,有些得不偿失。这里我介绍使用VS原生的CheckBox,以最简单的方法实现漂亮的开关控件。
2022-11-14 18:18:17
2802
原创 C# numericUpDown之小技巧--读取输入的字符
numericUpDown是C#的常用的控件之一,它是专门用来做数字输入的,我最常用到的属性包括他小数位数(DecimatePlaces属性)、最大最小值(Maximum属性Minimum属性)以及获取数值(value属性), 使用过的人都会发现value值这里往往存在一个小问题,value值虽然一直存在也不会超出范围,但是并不完全是我们看到输入的内容,那么,对于异常输入或者超出范围可以输入字符如何处理。这里我们就讲解一下具体解决方法。
2022-10-14 18:40:38
1967
原创 C# 通过Opacity隐藏背景窗体
通过窗体弹出另一个窗体的时候,不想显示背后的窗体,怎么办?当然,可以通过hide()方法来隐藏窗体。这里介绍另一种方法通过控制Opacity,即,通过不透明度来控制窗体隐藏。可以看到每一个窗体的属性中的icon类别中有一项叫做Opacity的选项,他的用途就是改变窗体的透明度,准确的解释为控件的不透明度百分比。它的值是0%-100%,如果是0%就是完全透明,如果是100%就是完全不透明。
2022-10-03 12:37:54
670
原创 C# Form默认的确认和取消按钮
在C#的form工程中,微软提供了非常方便的确认和取消快捷默认按键设置,该设置直接可以在窗体属性中进行设置。下面以VS2019 为例简单介绍。
2022-10-03 11:17:11
4223
原创 通过MIB和SIB查找频点参数ssb_offset、 offsetToPointA、UL_arfcn
MIB:master information block(主系统信息块)SIB:system information block(系统信息块) 在广播消息中,系统信息是小区级别的信息, 对接入该小区的UE有效。 系统信息可分为MIB ( MasterInformationBlock)和多个 SIB (SystemInformationBlock),每个系统信息包含了与某方面功能相关的树形结构参数集合。 下面以NR—5G举例找到对应DL arfcn:156490 频点的ssb_of
2022-10-03 10:00:31
2196
原创 C语言数据结构Queue----循环队列
无论是单片机还是MCU设备,数据处理应用中经常要使用FIFO队列,而Queue循环队列就是最经典、最基础的数据结构应用。通过大学学习的数据结构导论,结合自己的项目实践,用C语言描述和实现了循环队列的功能。队列简称队,也是一种运算受限的线性表,其规则允许在线性表的一端插入数据,另一端删除数据,插入数据的一端叫做队尾(rear),删除的一端叫做队首(front)。新插入队尾数据的动作叫入队,从队首删除数据的动作叫做出队。出队后,它的后继元素数据将成为新的队首,如果后继数据为空,队列将为空队列。...
2022-08-17 12:41:59
2378
原创 C# Queue队列
目录前言一、队列的新建二、入队三、出队四、清除队列前言我们在处理数据接收或发送的时,为避免数据量较多出现顺序混乱或是多线程共享内存造成数据覆盖问题, 经常需要对数据处理做到先进先出(FIFO)。于是我们经常要队列(Queue),顾名思义也就是和平时排队一样,一个一个的处理,遵循先来后到,不插队,不优先。在C#中,队列封装的很好,使用起来也很方便。它属于系统类的集合(Collection)类中...
2022-08-05 12:13:49
5226
原创 浅谈Foxmail邮件迁移
我们在长期使用Foxmail管理邮箱的时候, 以前的很多老邮件会因为电脑的更换,资料的转移等原因丢失。这里我简单介绍几种如何将邮件文件长期保存和转移的方法。
2022-08-04 20:35:32
11746
原创 STM32 GPIO的基础实现
GPIO 英文全称 general porpose intput output 即,通用输入输出端口。顾名思义,芯片最基本的输入输出接口。STM32或其它单片机芯片的GPIO引脚可以与外部设备连接起来,可以实现与外部设备通讯、控制或者数据采集的功能。...
2022-08-04 19:43:48
1537
1
原创 STM32 串口通讯及实现
广义的串口是针对并口来说的。串口是指设备之间通过一根数据信号线按数据位形式一位一位地传输数据的通讯口,同一时刻只能传输一位(bit)数据。并口则是指用多条数据线进行传输的通讯方式,可以同一时刻并排传输多个数据位的数据口。完整的侦结构见下图,从一个起始位开始,接着是着多位有效数据,一般常规定义为8位,后面的就效验位,为可以选,最后一个就是停止标志位,也就是说8位有效数据的时候一个完整的帧结构就需要10位。...
2022-07-28 16:54:45
4334
2
原创 C# 字符串的内插
您可能不知道C#字符串的表达方式有一种较为简洁的表达方式,即,内插方式,这种方式表达起来更加简单直观,使C#用起来更像高级语言。今天按照常用的方法举几个简单的实例表述一下。
2022-07-19 11:07:55
2928
原创 C# FTP上传和下载文件操作
我们使用C# 需要通过FTP访问服务器时,那么上位机就要作为客户端,通过连接FTP服务来上传下载文件。这里用实际代码和简要的文字描述一下。 见代码描述段中的构造函数 FtpOperation(),在初始化类的同时将用户各个参数初始化。 首先,将服务器IP传递过来,这个是第一重要的。其次,将用户ID、密码以及路径信息获取。最后,将其它参数赋初值。 ...
2022-07-14 15:12:23
5352
2
原创 C# 弹出窗口 show()和showdialog()
我们在构建C# Form窗口的时候经常需要到弹出新的窗口,那么接着就会如何弹出窗口的疑问。这里介绍最常见的两种弹窗方法show()和showdialog()。我在VS2019中构建一个简单的工程来讲解让他们之间的区别。大家也可以动手建一个体验他们之间的区别。 ...
2022-07-10 15:30:37
12162
3
原创 C# VS2019 #region和#endregion的使用
#region和#endregion 是自定义折叠区域的一个宏定义方法,在代码较多时,我们通常将同类的代码归类,然后将其框在一对#region和#endregion之间。对于较大一点的工程来说非常好用,非常方便自己管理代码。 #region表示区域开始,同行右侧上描述名称,#endregion则是区域结尾标识。折叠前后如下图一所示:图一 折叠前图二 折叠后 可以使用点击区域首行左边的加减符来展开和折叠你的区域。 批量操作最为关键,可以是通过右键或者快捷方式来全部折叠后(见图三)......
2022-07-05 15:21:55
7195
原创 C# DataGridView控件的基础应用实例
DataGridView我把他叫做网格数据控件 。我们在显示表格数据的时候,经常会用想到用它, 他就像Excel表格一样。我们知道只要是数据表,就一定逃不掉表的增删查改操作。 该篇,我在VS2019的环境下通过demo实例来实现DataGridView控件的一系列功能,包括添加一行数据、切换允许修改单元格、复制选择数据、复制所有数据、读一行数据、读取所有数据、查找记录、删除一行数据、删除一行数据、删除多行数据、清除所有行以及清除所有列。 .........
2022-07-03 16:38:01
12225
9
原创 C# 选项卡tabControl子项tabPage的显示和隐藏
我们在使用选项卡tabControl时,很多情况需要我们隐藏或者显示出我们指定的tabPage的页面。这里用VS2019简述基本操作和代码控制。 首先在工具箱中找到容器中的TabControl。将其拖到Form界面中,可以自由添加修改控件属性。往往我们先要将,会出现的页面先全部添加好。添加和删除页面在属性的最下方——添加选项卡和删除选项卡。 &emsp我们这里利用其父子控件关系来实现最简单的控制。onoff为true时,显示该选项卡tabPage2,其父控件名称叫做tab
2022-06-20 17:46:37
13405
1
原创 C# Form 鼠标悬停Tip显示
目录 1、添加控件2、修改控件属性3、修改控制对象3、最后 为了方便和详细解释说明C# form界面的使用,想描述设置范围或者注意事项等等内容,又不想写很多文字在界面上。这时候我们就可以使用VS的ToolTip控件,就可以在鼠标放在指定控件上面的时候能弹出一个小框的文字说明小提示,这里以VS2019为例说一下它是如何添加使用的。1、添加控件 在Form界面中将左侧工具箱中拖入ToolTip控件到界面中,接着可以看到界面下方会多出一个控件叫做toolTip1的控件。2、修改控件属性
2022-04-22 14:55:04
3360
原创 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
2092
原创 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
1920
原创 JS获取系统时间
网页通过JavaScript获取系统日期、时间的操作是比较常规的操作。我这里将自己使用过的方法小结一下,方便自己回顾或参考。一、 实现非常简单第一步实例化第二步获取值二、 参考实例1、无格式要求简单获取2、自定义格式获取3、闰年计算
2022-04-20 15:41:25
12838
1
原创 STM32构建BootLoader实现多系统OTA
STM32构建BootLoader实现多系统OTA通过BootLoader实现OTA升级是我们单片机常用的实现方式,其实我们可以将其多元化构建成多个系统,一方面,实现OTA可以保证升级过程出现任何错误时,原系统可恢复,也可以充分利用flash空间,实现系统可恢复操作,另一方面,可以实现多个单独应用程序的运行,以及相互切换操作,实现完全剥离的模块化开发。
2022-04-20 11:08:55
2455
1
原创 JavaScript 网页禁用屏蔽常用操作
小结一下网页前端常用的JavaScript屏蔽操作,包括网络劫持、禁止复制、禁止按键、清除缓存记录等操作。
2022-04-19 16:21:01
4549
原创 CSS 用@media设置响应式的页面
CSS 用@media设置响应式的页面使用目的 CSS中使用 @media 查询,你可以针对不同的媒体窗体定义不同的样式。@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,兼容PC端和移动端设备显示是非常有用的。基本语法 @media mediatype and | not | only (media feature) { css-code; }实例说明 语句既可以写在HTML的head中,也可以较为专业地写在CSS文件中。 下
2022-03-04 18:33:42
403
原创 C# 常用数据类型转换和格式判断
C# 常用数据类型转换和格式判断目录 C# 常用数据类型转换和格式判断目的1、 字符串转其它2、字符串判断是否为数字3、 整形转其它4、 字节数组转其它5、 结构体和字符数组互换6、 IP地址判断和转换格式7、 系统时间获取和对比目的 在使用C#的使用的时候经常要用到数据类型的转换或数据判断,我们经常将其包含到一个自定义类中,方便自己调用。这里小结一下我自己的汇总。1、 字符串转其它 /// <summary> /// 字符串转字节数组
2022-03-04 12:46:33
2570
原创 C# SCP访问SSH
C# SCP访问SSH基本概念SCP(secure copy)安全拷贝 意思是用来进行安全远程文件拷贝。SSH (Secure Shell )安全外壳协议 他是建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。一、获取第三方链接库 因为C#没有相关直接使用的库,因此,我们一般使用的是第三方库。 获取第三方动态链接库Renci.SshNet.dll,可以在我的上传资料中获取。获
2022-03-03 17:41:25
1383
原创 HTML基础标签汇总
HTML基础标签汇总 目录 HTML基础标签汇总一、概念二、重要的理解三、代码描述四、代码执行效果五、结束一、概念 HTML( HyperText Markup Language )超文本标记语言是一种用于创建网页的标准标记语言。二、重要的理解 当今最为流行网页三门专用语言:HTML 、CSS、JavaScript 。这三大语言作用:HTML 定义了网页的内容(身体)CSS 描述了网页的布局( 外观衣帽)JavaScript 控制了网页的行为(五官感受和表达表现)
2022-02-12 16:27:12
409
原创 C# Form窗体添加启动画面
C# Form窗体添加启动画面目录C# Form窗体添加启动画面一、找图片二、添加窗体三、提前加载图片窗体四、自定义显示代码 如果要使你的window软件界面显得牛逼点,就来个驱动图片加载画面吧,同时在开机画面做一些基本的注册识别、进程读取、数据加载等常规操作。这里就小结一下我使用的常规方法。一、找图片 首先,找到您想使用的开机图片,尽量大场景或logo图片,可以达到让人耳目一新的感觉。图片大小适宜即可。建议尽量和显示屏幕比例一致。二、添加窗体 1、新建一个Form窗体类,用来显示图片。
2022-02-12 13:45:06
3975
1
原创 Keil5 修改STM32单片机项目名称
Keli 5 修改STM32单片机项目名称目录 Keli 5 修改STM32单片机项目名称引言步骤1、修改文件夹名称2、删除修改项目文件3、打开项目中修改属性4、修改输出文件名引言 在做STM32单片机的时候经常要移植工程或者例程。需要修改工程名称,百度的很多方法说的不清楚有的甚至还要改项目文件内容,着实让人觉得有些复杂。根据我学习的经验以及正点原子等网络视频讲解,用最简单的实例,通过图文表述我的方法,自认为比较简单和全面的,希望对初学者有所帮助。步骤1、修改文件夹名称 将自己要求改的工
2022-01-03 14:55:07
3781
原创 C# 文件、文件夹常规创建删除操作实例
C# 文件、文件夹常规创建删除操作实例 C#的文件操作的功能是非常丰富的。他们大多来自System.IO类,比如:File、Directory、BinaryReader、BinaryWriter、DirectoryInfo、FileStream、MemoryStream、Path、StringWriter等等。当然,其它很多类中也包含文件操作。 这里在用C# 举几个常见实例,来说明文件、文件夹的存在查询、创建和删除的几个基本方法,以及如何浏览打开。目录C# 文件、文件夹常规创建删除操作实例一、
2021-12-15 16:09:00
1410
C语言描述MD5实例——MD5.c
2022-07-30
Anlink 一个很好用的投屏工具
2022-06-20
adb_tools.zip
2022-02-18
Renci.SshNet.dll动态链接库
2022-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人