自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C#UDP协议客户端工具类

【代码】C#UDP协议客户端工具类。

2025-04-03 15:46:31 339

原创 服务器与客户端通讯测试

通过上面4种测试方式,我们发现在TCP通讯中无论客户端如何发送数据,服务器都是能够接受到数据的,那么我们就可以理解这句话:TCP协议(Transimission Control Protocol)是以一种面向连接的、可靠的、基于字节流的传输层通信协议。

2025-03-28 16:12:09 771

原创 C#TCP通讯封装服务器工具类

方式2:调用:public Action<EMessage, IPEndPoint, int, string> AddEventToOutLog。方式2:调用:public EventHandler<byte[]> AddEventToDataReceived。方式:设置属性【OutputReceivedLog 】、设置属性【OutputReplyLog】ASCII:ASCII-解析输出。方式1:通过有参构造函数添加。方式1:通过有参构造函数添加。UTF8:UTF8-解析输出。

2025-03-28 14:53:49 506

原创 C#TCP通讯封装客户端工具类

方式2:调用:public Action<EMessage, IPEndPoint, int, string> AddEventToOutLog。方式2:调用:public EventHandler<byte[]> AddEventToDataReceived。连接服务器:bool ConnectServer(string ip, int port)private set;ASCII:ASCII-解析输出。方式1:通过有参构造函数添加。方式1:通过有参构造函数添加。UTF8:UTF8-解析输出。

2025-03-26 18:01:29 406

原创 C#winform实现气泡碰撞电脑桌面边缘(碰撞后改变气泡颜色,支持添加气泡)

【代码】C#winform实现气泡碰撞电脑桌面边缘(碰撞后改变气泡颜色)

2025-03-20 18:32:15 262

原创 TCP三次握手

SYN是 TCP 协议中用于发起连接请求的控制位。当客户端想要与服务器建立 TCP 连接时,会发送一个带有SYN标志位设置为 1 的数据包给服务器,这个数据包就被称为SYN包。该包的主要目的是同步客户端和服务器之间的初始序列号(Initial Sequence Number,ISN),以便后续的数据传输能够有序进行。数据包内容源端口和目的端口:客户端随机选择一个源端口,而目的端口是服务器正在监听的端口.初始序列号(ISN):客户端会随机生成一个初始序列号,这个序列号用于标识该连接中第一个字节的序号。

2025-03-20 15:15:04 663

原创 C#基于MVC模式实现TCP三次握手,附带简易日志管理模块

【代码】C#基于MVC模式实现服务器与客户端的三次握手,附带简易日志管理模块。

2025-03-19 16:12:34 889

原创 C#设计模式Demo——MVC

存储枚举、类属性成员的描述信息。用于深度拷贝、获取时间戳。"学生的唯一标识符"

2025-03-14 17:27:08 417

原创 C#的深度拷贝以及获取枚举注释

【代码】C#的深度拷贝以及获取枚举注释。

2025-02-25 10:17:45 350

原创 C#winform绘制旋转文字

【代码】C#winform绘制旋转文字。

2025-02-10 17:07:00 133

原创 C#winform将引用的DLL嵌入exe

在软件开发的过程中不可避免需要引用第三方类库或自定义类库(DLL), 引用的DLL一般在生成项目时会拷贝至Debug或Release目录中, 造成生成目录中文件繁多的问题,鉴于此现象希望将DLL封装在项目的exe文件中。

2024-12-20 15:43:05 756

原创 C#结构体排序(数组)

【代码】C#结构体排序(数组)

2024-11-27 17:17:15 342

原创 C#限制文本框仅允许浮点型数据

【代码】C#限制文本框仅允许浮点型数据。

2024-08-08 10:01:17 557

原创 C#通过NPOI 读、写Excel数据;合并单元格、简单样式修改;通过读取已有的Excel模板另存为文件

【代码】C#通过NPOI 读、写Excel数据;合并单元格、简单样式修改;通过读取已有的Excel模板另存为文件。

2023-11-28 16:38:12 1785

原创 C#winfrom端屏幕截图功能的简单实现(修改了屏幕的缩放比例后,截图功能异常,慎用!!!)

截图效果展示。

2023-11-21 10:31:16 598

原创 C#多线程的操作

在软件开发的过程中会很频繁的用到线程(Thread),在线程使用的过程中总是能出现“这样”或者“那样”的问题。线程被定义为程序的执行路径。如果应用程序涉及到复杂的和耗时的操作,设置不同的线程执行路径往往是有益的,让每个线程执行特定的工作。其实Task 是基于 Thread 的,是比较高层级的封装,Task 最终还是需要 Thread 来执行,使用Thread 开启的线程默认使用前台线程,而Task 默认使用后台线程。不管是前台线程还是后台线程,如果线程内出现了异常,都会导致进程的终止。

2023-11-15 17:07:42 814

原创 C#文件的读、写

文件读写

2023-03-02 17:53:36 514

原创 Winform设置窗体在无边框和最大化时不遮挡任务栏

【代码】Winform设置窗体在无边框和最大化时不遮挡任务栏。

2023-02-23 16:01:40 1224

原创 C#扩展方法的应用

【代码】C#扩展方法的应用。

2023-02-21 17:28:52 149

原创 C#反射学习记录,后续更新

【代码】C#反射学习记录,后续更新。

2023-02-20 10:52:44 99

原创 C#winform端SunnyUI之uiLineChart

C#winform端SunnyUI之uiLineChart

2022-10-11 17:58:01 8669 2

原创 C#winform端SunnyUI之uiPagination

C#winform端SunnyUI之uiPagination

2022-10-11 14:28:58 6497 18

原创 C#线程控制(报数),多线程控制

【代码】C#线程控制(报数),多线程控制。

2022-09-15 11:20:35 376

原创 C#线程使用

1.异步委托开启线程注意:1.若使用异步委托开启线程,则委托仅允许添加一个方法;2.启用委托开启线程,可以多次启用线程,相当于再次启用另一条线程;/// <summary>/// 定义委托类型/// </summary>public static Action<string, int> Test;/// <summary>/// 启动异步委托线程/// </summary>/// <param name="name"&

2022-02-25 16:16:25 891

原创 C#文本框验证当前按键或验证输入内容

1 核心代码(校验当前字符是否为数字或退格键)public class Utility{ /// <summary> /// 判断按键是否为数字或退格键 /// </summary> /// <param name="ch">按键字符</param> /// <returns>是:true</returns> public static bool IsInputNumber(char ch) { return

2022-02-21 15:26:50 2048

原创 C#关于Func和Action委托的介绍

委托:委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。1.Action委托没有返回值,可以不包含参数(1)声明委托、定位委托事件、向委托添加事件、执行委托/// <summary>/// 不包含参数/// </summary>private event Action Action_0;/// &lt

2022-02-16 11:59:06 5096

原创 C#关于JSON的使用

(2)大量数据时尽量少用Json存储数据,Json适用于轻量级数据;(1)一般情况不使用加密,若要使用加密请进行验证以免出现错误;(3)使用Json时需要添加依赖包,并引进命名空间;从包管理器添加Json依赖包,

2022-02-16 10:45:51 4308 1

原创 关于C#winform端Settings.settings的见解

1.说明由于最近工作比较忙很长时间没有写文章了,最近在项目中使用Settings.settings时遇见了一些问题,故作记录,要是有不对的希望各位大神指点。2.Settings.settings说明Settings.settings结构如上图,在Settings.settings中添加节点时Settings.Designer.cs自动生成该节点的属性,App.config自动生成节点信息。3.使用方式介绍private void button1_Click(object sender, E

2021-12-09 12:06:56 4078

原创 C#TextBox设置提示文本(SetHintText)

效果展示核心代码[DllImport("user32.dll", CharSet = CharSet.Auto)]private static extern Int32 SendMessage(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);public static void SetHintText(Control control, string text){ Sen

2021-10-20 10:38:54 4852

原创 C#已知两点(线段),求互相垂直平分两点(线段)。

/// <summary> /// 根据两点求直线以及直线垂直平分线的k,b值, /// </summary> /// <param name="x1">传递值为已知坐标点x1,返回值为垂直平分线的x1</param> /// <param name="x2">传递值为已知坐标点x2,返回值为垂直平分线的x2</param> /// <param na

2021-09-11 11:39:51 1236

原创 C#在控件中绘制矩形、圆、线段等(切换不同的图片,自定义翻页控件,通过委托监控某个字段)

1.效果展示代码 /// <summary> /// 记录鼠标移动时的位置 /// </summary> private Point _mouseLocation; //鼠标移动事件 private void pic_1_MouseMove(object sender, MouseEventArgs e) { _mouseLocation =

2021-09-09 18:23:35 2279 1

原创 C#winform设置组合快捷键

1.设置窗体属性:keyPreview = true;2注册事件3.在事件中添加代码 private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.Alt && e.KeyCode == Keys.S) //Ctrl + Alt + S { MessageBox.Show("按下了Control + Alt + S");

2021-08-13 11:32:15 1033

原创 C#Winform端主窗体控件绑定子窗体

Winform端主窗体控件绑定子窗体

2021-07-16 11:43:56 1220

原创 C#读取App.config

读取config文件

2021-06-27 20:37:45 1214

原创 C#winform程序防多开,以及限定指定PC打开程序

1.限制只能打开一个程序var processes = Process.GetProcesses();var currentProcess = Process.GetCurrentProcess();var isRun = false;foreach (var p in processes){ if (p.ProcessName == currentProcess.ProcessName && p.Id != currentProcess.Id) {

2021-06-10 11:21:42 478

原创 C#重绘GroupBox,使文本居中显示

using System.ComponentModel;using System.Drawing;using System.Windows.Forms;namespace MyNameSpace{ public class M_GroupBox : GroupBox { private string _text = ""; /// <summary> /// 构造函数 /// </summary&

2021-05-08 16:31:26 1448

原创 C#获取随机值、汉字

获取随机值、汉字

2021-04-22 17:03:43 498

原创 C#条件拼接Expression<Func<T, bool>>

使用代码特别注意拼接条件时,所使用到的条件strID,strBir必须是独立的var predicate = PredicateBuilder.GetTrue<Student>();predicate = predicate.And(it => it.id.ToString().Contains(strID));predicate = predicate.And(it => it.Birthday.ToString().Contains(strBir));predicat

2021-04-22 16:58:52 5027

原创 C#值类型数据转换

值类型数据转换

2021-04-21 14:09:46 408

原创 C#winform跨窗体更新UI,跨线程更新UI

1. 跨线程界面更新1.1通过委托更新界面public delegate void RefreshInterface(int num);//创建委托,含有一个参数numbool MyThreadIsRun = false;//用来控制线程状态private Thread MyThread = null; //创建线程private void button1_Click(object sender, EventArgs e){ MyThreadIsRun = !MyThreadIsRun

2021-04-21 13:46:59 8991

winform窗体、控件的简单封装,重做标题栏

winform窗体、控件的简单封装,重做标题栏

2023-11-15

空空如也

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

TA关注的人

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