自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 C# WinForm窗口中加载GIF图片,实现图片动态显示

我们在开发窗口程序中,多数会用PictureBox控件来显示图片,用属性BackgroundImage加载图片做为背景,用BackgroundImageLayout属性对图片进行平铺、拉伸等操作。但是对于背景是GIF动态图片,它显示出来的还是静态的,用Image属性设置,效果一样,还是静态,那该如何设置呢?在Form的构造函数中把GIF文件赋值给PictureBox的Image,并打开双缓冲,并且让PictureBox控件将自行绘制背景,而不是通过操作系统来绘制。

2024-02-01 14:25:24 2499 2

原创 C# 虚拟鼠标和键盘按键(三)【SendInput】

在前面两篇“C# 虚拟键盘按键(一)【SendKeys】”和“C# 虚拟键盘按键(二)【keybd_event】”文章中,我们讲了虚拟键盘按键的方法,它们只能虚拟键盘的按键操作,不能虚拟鼠标。本文介绍的Window API的SendInput函数,不仅能虚拟键盘,而且还能虚拟鼠标,同时微软用它取代了我们第二文章中说的keybd_event方法,所以相对来说功能更加丰富和先进,并且我们也能更多地了解一些键盘和鼠标的结构体和一些Window消息。2.1 下面代码需要用到的引用是:代码有1000多行看起来比

2024-02-01 12:08:30 2883

原创 C# 虚拟键盘按键(二)【keybd_event】

在触屏及一些其他条件下,我们需要使用虚拟键盘,而不是真正去敲击键盘来实现按键功能,这时我们就考虑到模拟键盘的使用。上一篇我们讲了SendKeys的模拟键盘用法(),下面我们来简单谈一下Window API的keybd_event的用法,它的参数含义我在代码注释中已经写清楚了。下面代码需要引用System.Runtime.InteropServices。

2024-01-28 11:31:32 1071

原创 C# 虚拟键盘按键(一)【SendKeys】

有些场景下,需要模拟键盘按键的动作,而不是真正地去敲击键盘,比如使用触屏或者使用遥控器去模拟输入,这就用到虚拟键盘按键这个功能,常用的有三种方式,一种是用SendKeys去模拟输入按键,第二种是Window API的keybd_event函数,第三种也是Window API的SendInput函数(包含了模拟鼠标)。在微软的官方文档中说,第三种SendInput函数已经取代第二种keybd_event函数(能正常使用)。我们先说第一种SendKeys的使用。

2024-01-28 09:49:42 2578

原创 C# 串口通讯简易使用代码

与硬件设备通信,常用的就是串口了。为了方便简捷使用,写了串口通讯类,尽量将串口使用条理化,格式化,使用起来简单明了。

2024-01-18 13:56:57 869

原创 C# 16进制格式的字符串与byte[]数组相互转换

经常在写程序中会遇到将二进制的字节用16进制的字符串表示出来,比如串口通讯,Modbus等中经常遇到,下面就写个相互转换的类以方便使用,当记录与大家分享。

2024-01-18 08:38:35 1699

原创 SQL的联合查询JOIN的七种用法

可以通过下图直观看出 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN等相关的7 种用法。

2023-11-11 10:10:18 550 1

原创 C# WinForm自定义IP地址输入框控件

最近在做使用网络的软件时,涉及了输入IP地址和获取IP地址,WinForm界面中直接用TextBox或四个TextBox控件总觉不象回事,后来改用WinForm自带的MaskedTextBox控件,虽然通过设置掩码可以实现IP地址输入,但是发现与Windows操作系统中设置IP有很大差别,比如在第一个IP段删除地址,后面三个IP段的地址会跟着向左移动,另外,假如某一段IP地址只有一位,它显示的不居中,感觉很别扭,所以MaskedTextBox控件体验感不好。

2023-10-11 12:58:56 2322 44

原创 C# WinForm窗口控件随窗口变化而等比例变化

如果想等比例变化,其实只需要根据窗口变化比例,来等比例变化窗口控件的长,宽和其位置坐标及字体大小即可。所以在窗口InitializeComponent()初始化控件后,用全局变量记录下它的原始长和宽,然后再根据它的变化长和宽来计算比例,同样放大和缩小控件就行。我们知道,窗口控件都有一个给用户自定义的数据的属性Tag,我们就把控件变化前的长,宽,坐标和字体大小记录在Tag中,以便对变化后的尺寸时行缩放。为了阅读程序的连续性,我把窗口默认的Form1类也写到上述代码中了,大家可以自行选择使用代码。

2023-09-02 14:43:29 2659

原创 C# WinForm窗口图片或控件防止闪烁

在WinForm窗口程序时,经常会有在窗口中图片或者控件比较多的情况,当控件加载或重绘刷新时,图片或控件会不断闪烁,影响程序美观。

2023-08-31 12:53:53 591

原创 C# 串口发送ModbusRTU、ModbusASCII的8条主要功能代码并获取返回的响应信息

在我的文章“”和""中给出了Modbus两种传输方式的主要8条功能代码,它们都是byte[]数组,都是独立的指令代码,并没有集成到串口发送中来,这样做是为了扩大它的应用范围,这些独立的功能代码即可以应用于RS232/485/422转网络传输的环境中,也可以应用于Modbus串行总线部署,本文就给出它们应用于Modbus串口通信发送和接收数据的程序代码。

2023-07-17 20:19:44 1956 1

原创 C# Modbus ASCII命令功能码

Modbus是一种串行通信协议,主要应用于电子控制器上的一种通用语言。常用的ModbusRTU、Modbus ASCII和ModbusTCP,Modbus ASCII相对来说要用的少一些。Modbus ASCII协议是一种主从式串行异步半双工通信协议,是基于RS485\RS422\RS232物理层的通信的,在协议通信中每个字符通信格式规定为1个起始位、7个数据位、1个校验位、1个停止位,并且有LRC错误校验。

2023-07-09 13:25:20 994 1

原创 C# Modbus ASCII的LRC校验代码

Modbus常用的有ModbusRTU、Modbus ASCII和ModbusTCP。其中ModbusTCP不涉及自身协议的校验,另外两种Modbus的校验方法分为两种,一种是对每个单独报文的奇偶校验,另一个是对每帧数据的帧校验。(1)、奇偶校验奇偶校验有奇校验和偶校验(如果无校验,则报文中默认有两个停止位)两种。

2023-07-08 16:06:12 1336 1

原创 C# 注册表操作代码

在我们编写程序时,有时会用到注册表项,我们看到的注册表是树状结构,习惯把左边树状形式叫做文件夹,右边的叫键,对应的值叫键值。但微软对注册表左边的树状称作“项”,右边我们叫键的称作数值名称(“字符串值”、“二进制值”、“DWORD(32位)值”等),相应的键值叫做数值数据。我们的代码还是以我们自己命名习惯来写的。

2023-06-27 13:23:01 762

原创 C# ModbusRTU、ModbusASCII及ModbusTCP返回数据解析为数值,功能码0x01-0x04使用1234/2143/3412/4321等字节顺序解析值

既然谈到ModbusRTU、Modbus ASCII、ModbusTCP数据返回,那我们多少会对Modbus数据发送会有了解,所以本文不再对Modbus的基础知识进行阐述,如果想了解Modbus常用的发送指令,可以参看我的文章""、“"和"Modbus常用的通信指令有8条,其中功能码0x01、0x02、0x03、0x04是查询指令,0x05、0x06、0x0F、0x10是写入指令,对应的返回数据也就有8种。

2023-06-19 19:56:01 3996

原创 C# ModbusRTU命令功能码

Modbus是由Schneider Electric(施耐德电气)为PLC(可编程逻辑控制器)通信而研发的一种串行通信协议,是应用于电子控制器上的一种通用语言。常用的有两种ModbusRTU和ModbusTCP,还有一种Modbus ASCII,但是相对来说要用的少一些。Modbus RTU 协议是一种主从式串行异步半双工通信协议,是基于RS485\RS422\RS232物理层的通信的,在协议通信中每个字符通信格式规定为1个起始位、8个数据位、1个校验位、1\2个停止位,并且有CRC错误校验。

2023-06-19 09:39:58 1775

原创 C# WinForm程序只启动一次,避免重复启动形成多个窗口程序

C# WinForm程序只运行一次,限制多次启动

2023-05-23 15:38:24 1789

原创 C# 编写VLC视频事件处理程序 libvlc libvlc_event_attach libvlc_event_manager libvlc_event_type ibvlc_event_e用法

C# VLC视频事件 libvlc libvlc_event_attach libvlc_event_manager libvlc_event_type ibvlc_event_e libvlc_callback

2023-04-18 17:56:55 1302

原创 C# enum枚举类型的遍历

C# enum枚举 遍历

2023-04-12 21:37:28 5979

原创 C#调用C++动态链接库的参数对照

C#调用C/C++动态库时的参数对照关系

2023-04-05 13:43:03 1237

原创 C# 用Linq查询数组(数据库等)元素之间相差(相加、相乘、相等)在一定范围内的语句

C# 用Linq查询同一数组的元素或数据库同一字段值之间的差值,元素相加、相乘、相等在一定范围内的语句

2022-11-02 11:01:07 1203

原创 C# Modbus的CRC16校验代码

Modbus常用的有ModbusRTU、Modbus ASCII和ModbusTCP。其中ModbusTCP不涉及自身协议的校验,另外两种Modbus的校验方法分为两种,一种是对每个单独报文的奇偶校验,另一个是对每帧数据的帧校验。(1)、奇偶校验奇偶校验有奇校验和偶校验(如果无校验,则报文中默认有两个停止位)两种。

2022-05-28 13:12:01 15503 7

原创 C# 使用Entity在程序中设置连接字符串

C# Entity 隐藏连接字符串 程序设置连接字符串

2022-05-27 15:44:22 1406

原创 C# Entity单条件查询与多条件查询

C# Entity单条件与多条件查询

2022-05-26 11:03:12 2228

原创 C# ModbusTCP命令功能码

C# ModbusTCP功能码命令生成程序

2022-05-23 19:03:54 4267 2

原创 C# 动态类创建、动态创建属性和取动态类属性值

动态类创建、动态属性建立、赋值和取值

2022-05-22 13:03:29 10121 2

C# WinForm自定义的IP地址输入框控件(.Net Framework 4.5.2)

可以设置和读取IP地址,具有跟Window的IP地址输入框一样的功能,箭头方向键、空格、句点、删除键可以在四个IP地址段内连续移动,可拉伸控件,改变字体颜色及大小,改变背景颜色及IP地址框的背景颜色。对输入的IP地址自动校验是否正确,输入IP地址错误会提醒,同时IP地址赋值错误会自动采用默认地址127.0.0.1。VS引用该控件的dll后,会自动显示在VS的工具箱中,控件的属性窗口内新增IP地址输入框背景和IP地址设置两个属性,在事件窗口中新增改变IP地址框背景后触发的一个事件。开发于.Net Framework 4.5.2,更高版本请测试使用,或者留言索取更高版本。

2023-10-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除