
C#从入门到精通
本文专栏介绍C#上位机开发相关知识!
上位机马工
硕士,高级软件工程师,精通c#上位机开发,《C#串口通信从入门到精通》,《C# Modbus通信从入门到精通》,《winform控件从入门到精通》专栏作者,持续专注上位机软件开发,立志成为上位机软件开发领域领路人!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C#控制Button单击事件指定时间间隔触发
我们在开发C#程序的时候,有时候会遇到Button按钮需要频繁点击的情况,但是我们又希望为了防止用户误操作,只能控制在指定时间间隔内触发,比如不论用户点击的多快,我只允许让按钮1秒触发一次,本文就来帮助大家解决这个问题!原创 2025-06-22 15:46:45 · 465 阅读 · 1 评论 -
Directory.Move重命名文件夹提示无访问权限的解决办法
2、将asInvoker改成requireAdministrator。1、生成app.manifest文件。原创 2025-06-03 11:18:08 · 232 阅读 · 0 评论 -
C#中winform窗体如何捕获键盘按键事件
我们在开发C#程序的时候,有时候需要捕获键盘上的按键事件,比如按下某个键,我们就执行某个功能,本文就来帮助大家解决这个问题!原创 2025-04-29 22:39:19 · 544 阅读 · 0 评论 -
C#并行编程极大提升集合处理速度,再也没人敢说你程序性能差了!
本文介绍如何使用C#并行处理技术极大提升集合处理效率!原创 2025-04-25 21:33:17 · 532 阅读 · 2 评论 -
C#上位机框架免费开源,这框架简直逆天!
马工给大家写了一个C#上位机软件框架,包含配方管理、权限管理、日志管理、等功能,该框架已经上传Gitee,给初学者一些参考,大家可以免费下载!原创 2025-04-16 21:07:12 · 1986 阅读 · 2 评论 -
C#自动寻找电脑所有串口,这操作简直逆天!
我们在开发C#串口通信程序的时候,有时候不知道我们电脑已经连接了几个串口,也就是COM口,这时候就需要我们去电脑的设备管理器去查看,这太繁琐了,本文就来帮助大家解决这个问题!原创 2025-04-09 23:38:35 · 362 阅读 · 0 评论 -
如何判断一个dll/exe是32位还是64位?(两种方法)
本文采用vs自带的dumpbin判断一个dll是X86还是x64,如下:Step1、打开命令提示符窗口,windos键+R键,输入cmd,回车,如下:Step2、更改目录到Dumpbin运行目录下,使用"cd"命令将目录改为同一盘符下的Dumpbin.exe所在目录下(都是C盘),如果当前目录和Dumpbin.exe所在目录不在同一个目录下,则使用"d:"命令,先更改盘符,然后再使用cd命令...原创 2020-03-27 11:25:31 · 31968 阅读 · 0 评论 -
C#按照矩形中心获取缩放矩形,搞这行的都得懂!
我们先获取原始矩形的中心点坐标,由于缩放矩形是按照矩形中心点缩放的,所以缩放前后矩形的中心点坐标不变,变化的只是矩形的宽度和高度(这里只讲解没有角度的矩形),所以我们解决该问题的思路就是先获取中心点坐标,然后按照缩放倍数获取新的矩形宽度和高度,最后根据中心点以及宽度、高度推算出矩形左上角的坐标。原创 2025-03-31 21:56:24 · 482 阅读 · 0 评论 -
C#元组Tuple,这操作简直逆天!
我们在开发C#程序的时候,有时候需要一个方法返回多个参数,我们可以自定义一个类型来存储多个参数,但是如果这个方法用的比较少,那也就没必要单独自定义一个类,那我们就可以使用元组tuple来解决这个问题!原创 2025-03-23 23:25:58 · 440 阅读 · 0 评论 -
C#随机数,真香啊!
大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#程序的时候,有时候需要模拟一些随机性的结果,比如某个产品的检测结果分为Ok、NG两种情况,在前期测试时软件产生的可能只是NG(比如客户只提供了NG品给我们测试),但是我们又需要测试Ok、NG两种情况下时气缸的动作是否正常,这时候就需要软件能够模拟出OK、NG两种情况,本文就来帮助大家解决这个问题!原创 2025-03-18 20:29:12 · 351 阅读 · 0 评论 -
winform中chart控件解决显示大量曲线数据卡顿方法——删旧添新法
我们在开发winform窗体程序的时候,有时候会往chart控件中添加大量的数据用于显示曲线,当数据太多时,会出现程序界面卡顿甚至软件崩溃的情况,本文就来帮助大家解决这个问题!原创 2025-03-12 22:55:46 · 1059 阅读 · 0 评论 -
WinForm模态与非模态窗体
模态窗体:适合需要用户立即处理的场景,会阻塞主窗体的操作。非模态窗体:适合需要长时间显示或与其他窗体同时操作的场景,不会阻塞主窗体的操作。根据具体需求选择合适的窗体显示方式,可以提升用户体验和应用程序的交互性。原创 2025-03-09 22:53:14 · 685 阅读 · 0 评论 -
如何利用DeepSeek的AI技术来提高C#开发效率,人人都要学会的技术!
最近DeepSeek非常火爆,由于AI的迅速发展,AI已经在各个方面都得到了广泛的应用,我们作为C#开发工程师也要学会利用AI来帮我们解决问题,这样才能达到事半功倍的效果,本文就来介绍如何利用DeepSeek来解决我们C#开发中的各种问题!原创 2025-03-05 21:01:30 · 457 阅读 · 0 评论 -
C#从入门到精通(36)—如何实现winform窗体最大化最小化,大佬都要会的技术!
我们在开发winform窗体程序的时候,有时候觉得winform窗体的默认边框比较丑,这时候我们可以去掉自带的边框,去掉边框以后,我们想要自己设计一个边框,这个边框一定是需要最大化或者最小化功能的,本文就来讲解如何实现winform窗体的最大化或者最小化!原创 2025-03-02 23:09:13 · 1534 阅读 · 0 评论 -
C#从入门到精通(35)—如何防止winform程序因为误操作被关闭
我们在开发的上位机软件运行起来以后,一般在右上角都有一个关闭按钮,正常情况下点击关闭按钮就能关闭软件,但是不排除我们不想关闭软件,但是因为不小心把鼠标点到了关闭按钮,如果这是一个正在生产的机器,突然关闭软件可能会导致产品损坏,那么我们如何去解决这个误操作的问题呢,本文就来讲解解决方案!原创 2025-02-25 21:33:16 · 443 阅读 · 0 评论 -
C#从入门到精通(34)—如何防止winform程序被同时打开多次
我们在开发上位机软件的过程中,评判一个人软件写的好不好,有一个细节就是这个软件会不会被重复打开多次,因为上位机软件一般连接了多个硬件,比如扫码器、控制卡、相机等,一旦软件被同时打开多个应用,特别是上位机软件一般都是在工厂给操作员使用,多次打开软件难免发生,一旦发生就会出现软件各种异常,甚至造成不可预知的异常导致设备损坏,本文就来讲解如何解决这个问题。原创 2025-02-23 00:03:35 · 793 阅读 · 0 评论 -
winform控件获取与失去焦点
1、获取焦点2、失去焦点。原创 2024-12-02 17:26:45 · 798 阅读 · 0 评论 -
winform跨线程更新界面
我们在开发C#程序的时候,有时候需要在非Ui主线程更新界面,为了避免跨线程更新ui的异常,下面进行详细介绍如何实现这一需求!原创 2024-11-30 18:08:30 · 1069 阅读 · 0 评论 -
C#读取本地图像的方法总结
我们在C#开发C#程序的时候,有时候需要读取本地图像,下面进行详细介绍如何实现这一需求!原创 2024-11-29 18:28:33 · 1086 阅读 · 0 评论 -
如何让控件始终处于父容器的居中位置(父容器可任意改变大小)
马工2017年硕士毕业,一直从事上位机软件开发工作,在我工作的第四年年薪突破了40万+,为了帮助跟我一样从底层出身的上位机软件工程师早日达到高级工程师的水平,早日找到30万+的工作,我根据多年项目经验,总结出了一系列可直接用于项目的C#上位机实战教程推荐给大家,目前在优快云已经超过一千人订阅,如果你不甘贫庸,想像我一样早日拿到高薪,马工强烈推荐你早日学这套教程,雷军曾说这个世界上有99%的问题别人都遇到过,你要做的不是闷头干!而是找这个领域的专家问一下,这是最快速提升自己的方法!原创 2024-11-28 15:25:22 · 1053 阅读 · 0 评论 -
C#判断点是否在多边形内
GraphicsPath path = new GraphicsPath();path.FillMode = FillMode.Winding;//指示填充的模式path.AddLine(new Point(10, 10), new Point(110, 10));path.AddLine(new Point(110, 10), new Point(60, 100));path.AddLine(new Point(60, 100), new Point(10, 10));this.CreateGr原创 2024-10-24 09:32:42 · 601 阅读 · 0 评论 -
C#判断点是否在矩形内
大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在C#开发中经常需要对平面中的坐标位置进行一些判断,比如判断坐标点是否在某个矩形范围内,本文就是介绍如何实现这个功能。原创 2024-10-22 20:58:49 · 1424 阅读 · 0 评论 -
点在矩形内
Console.WriteLine(“point1不在矩形中”);Console.WriteLine(“point1在矩形中”);原创 2024-10-21 19:54:54 · 195 阅读 · 0 评论 -
C#线性变换——缩放
我们在C#开发中经常需要对平面中的坐标进行一些变换,比如缩放、旋转等,本文就是介绍如何对平面坐标系中的点进行缩放变换。原创 2024-10-20 11:43:51 · 383 阅读 · 0 评论 -
C#从入门到精通(31)—C#Marshal类用法总结
我们在C#上位机编程中,我们经常需要进行托管内存和非托管内存数据的交互,所谓托管就是内存由.NET运行时自动管理的对象,我们在C#编程中绝大多数都是涉及的托管内存,而非托管就是操作系统或其他非.NET组件直接控制的资源,常见的是调用工业相机sdk的过程中,相机厂商经常给我们返回图像数据的时候不是直接给我们返回bitmap,而是返回图像数据的地址也就是一个指针IntPtr,这个地址(指针)就是一个非托管地址,这时候就需要我们从这个非托管地址获取图像数据,所以掌握托管内存和非托管内存数据的交互是走向高级上位机软原创 2024-09-25 17:01:32 · 2083 阅读 · 0 评论 -
C#从入门到精通(30)—C#获取程序异常的超牛方法
们在开发上位机软件的过程中,经常会遇到各种奇奇怪怪的错误,这时候如果visual studio提供给我们的错误信息足够详细,一般我们都是可以根据错误提示来判断出究竟哪里出了问题,本文就是介绍一种比较牛的获取错误信息的方法。原创 2024-09-21 18:00:00 · 632 阅读 · 0 评论 -
C#从入门到精通(29)—C#事件的用法
定义事件首先,你需要定义一个委托,然后基于这个委托来声明一个事件。下面这个委托有两个参数,第一个参数是object类型,第二个参数是TempEventArgs类型,TempEventArgs这个类型是我自己定义的,继承于EventArgs。//声明一个委托set;//定义一个类,这个类包含一个事件,这个类也称为目标类//声明事件//空委托,这样我们就不用在调用事件时先进行null值判断了。//触发事件。原创 2024-09-19 17:20:22 · 881 阅读 · 0 评论 -
C#从入门到精通(32)—C#回调函数用法总结
大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在C#上位机编程中,我们经常会遇到使用回调函数的场景,比如调用工业相机获取图像,异步Socket编程等,所以掌握回调函数的用法是C#上位机工程师进阶的必经之路!原创 2024-09-15 11:47:19 · 833 阅读 · 0 评论 -
C#从入门到精通(27)—C#中几个比较高阶的操作符
本文介绍几个在C#中使用的高级操作符。原创 2020-05-20 22:00:34 · 321 阅读 · 0 评论 -
bitmap调用save报错a generic error occurred in gdi+(进程被占用)
不用直接调用bitmap的Save函数,而是先new一个Bitmap 的对象,然后再次调用Save函数即可,但是不知道有没有作用。1、将两个保存图片的线程放到不同文件夹这个问题就没有了。2、看到网上一个说法是。原创 2024-09-06 17:00:24 · 403 阅读 · 0 评论 -
C#从入门到精通(22)—Path类的使用
我们在开发上位机软件的过程中,有时候需要对文件的路径、文件名、扩展名进行操作,下面进行详细介绍原创 2024-09-05 22:13:03 · 1041 阅读 · 0 评论 -
C#从入门到精通(21)—Mutex互斥锁在多线程、多进程下的使用
我们在开发上位机软件的过程中,有的时候需要实现同一个进程下的不同线程访问同一个资源的时候不要产生冲突,一个线程访问完了,另一个线程接着访问,或者是不同进程访问同一个资源的时候不要产生冲突,这时候就可以使用Mutex这个互斥锁来实现原创 2024-08-28 15:59:43 · 1983 阅读 · 1 评论 -
C#从入门到精通(20)—C#目录类Directory用法总结
本文是对Directroy目录类的介绍!原创 2024-08-28 13:57:19 · 1672 阅读 · 1 评论 -
C#从入门到精通(11)—C#静态类与非静态类
C#静态类与非静态类原创 2024-07-05 23:37:29 · 818 阅读 · 0 评论 -
C#从入门到精通(1)—C#对字典使用Linq查询
C#对字典使用Linq查询原创 2024-08-20 11:14:02 · 955 阅读 · 0 评论 -
C#从入门到精通(2)—C#委托用法总结
C#委托用法总结!原创 2024-08-14 23:26:08 · 1193 阅读 · 1 评论 -
C#从入门到精通(3)—计时方法总结
我们在开发C#程序的过程中经常需要计算某段程序执行的时间,比如调用的某个算法的时间,这时候我们就需要利用计时工具,本文就是详细介绍在C#中我们常用哪些计时工具。原创 2024-08-12 21:10:40 · 885 阅读 · 1 评论 -
C#从入门到精通(4)—Linq实现集合数据的快速转换、筛选、排序、分组
Linq实现集合数据的快速转换、筛选、排序、分组!原创 2024-08-09 22:14:30 · 1365 阅读 · 0 评论 -
C#从入门到精通(5)—C#如何解决引用类型的“深度”克隆问题
C#如何解决引用类型的“深度”克隆问题!原创 2024-08-08 21:32:53 · 636 阅读 · 0 评论 -
C#从入门到精通(6)—C#中抽象类的使用
我们在C#中使用抽象类可以发挥C#多态的功能,把具有共性的方法定义在抽象类中,然后在不同的类中去实现,可增强代码的可读性、扩展性。原创 2024-08-07 00:03:49 · 655 阅读 · 0 评论