- 博客(19)
- 收藏
- 关注
原创 C#子窗体打开的图片显示在主窗体的PictureBox中
第1步,创建项目。在Form1窗体增加一个按钮,打开Form2窗体使用。(第4步是重点) private void button1_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); }第2步,在Form2窗体增加一个按钮,打开图片使用。担心图片打开有没有问题,在Form2窗体增加一个PictureBox显示一下你打开
2020-11-04 12:53:45
2916
2
原创 【C#】【ini文件的读与定】调用kernel32实现ini的读取与写入
这段代码提供了对INI文件进行读写操作的封装方法。通过调用Windows API函数WritePrivateProfileString和GetPrivateProfileString,实现了保存和获取INI配置值的功能。SaveIni方法用于将键值对写入指定的INI文件,默认路径为应用程序目录下的Config.ini;ReadIni_1方法则用于从INI文件中读取指定键的值,支持设置默认值。两个方法都包含异常处理,确保读写操作失败时能安全返回。代码特别强调了使用完整路径的重要性,以避免文件被保存到未知位置。
2025-10-30 17:27:23
274
1
原创 【C#】【文件操作】设定月份或天数等时间,删除文件夹内的文件
摘要:该代码实现了自动清理指定目录下超过3个月的文件功能。主要包含以下特点:1) 可指定目录路径、文件搜索模式(如*.log);2) 可选择按文件的创建时间或修改时间判断;3) 默认清理3个月前的文件,可自定义时间跨度;4) 包含异常处理机制。程序会检查目录是否存在,获取符合条件的文件列表,并删除超期的文件。
2025-10-30 17:01:36
130
原创 【C#】【Form】自定义类实现报警弹窗
本文介绍了通过继承Form类实现自定义报警弹窗的方法。通过定义AlarmLevel枚举(Information/Warning/Error/Critical)来区分不同级别的报警,弹窗会根据报警级别自动调整标题、背景色和图标。类中包含确认和异常两个按钮,点击后返回DialogResult结果。调用时只需使用ShowAlarm静态方法传入消息和报警级别即可。这种方式比直接调用MessageBox更灵活,便于扩展按钮和自定义样式,适合需要复杂交互的项目。
2025-10-08 16:59:55
170
1
原创 【飞拍视觉】工业相机选型和硬件接线
相机选型需选用全局相机,帧率根据轴速计算最小曝光时间。镜头优选高通光量,高精度应用可选远心镜头。光源配置建议高频高亮光源(爆交源),低速时可使用常规常亮光源。理论计算值可适当放宽。附固高控制卡与相机接线图及相机触发光源控制器接线示意图。
2025-09-29 18:31:45
417
原创 【C#winForm】Button鼠标左键长按2秒生效,且右键不影响
本文介绍了一种通过异步方式实现按钮长按功能的方法。通过定义按钮变量、CancellationTokenSource和标记位,在MouseDown事件中使用Task.Delay实现2秒等待,若未取消则执行操作并改变按钮状态;MouseUp事件中处理提前释放情况。该方法避免了使用Timer或DateTime逻辑,通过异步编程实现精准的长按检测,适用于自动化设备等需要长按触发的场景。
2025-09-29 17:29:22
417
1
原创 C#鼠标按住控件或窗体,移动整体应用程序界面
摘要:本文介绍了在WinForm窗体中通过Label控件实现窗体拖拽功能的方法。通过Label控件的MouseDown、MouseMove和MouseUp三个事件,结合Lambda表达式实现:在MouseDown事件中记录初始位置;MouseMove事件中计算位移并更新窗体位置;MouseUp事件结束拖拽。文中还提供了Label控件的初始化代码,包括样式设置和布局控制,并给出了三种实现方式的说明(直接编码、图形化设计、不同事件写法)。该方法可用于自定义窗体交互设计。
2025-09-26 14:46:37
136
1
原创 C#程序捕获全局异常(当前应用程序域发生的异常)
摘要:文章介绍了在应用程序入口处集中处理未捕获异常的方法。通过设置Application.UnhandledExceptionMode并注册Application.ThreadException和AppDomain.CurrentDomain.UnhandledException事件,可以捕获所有未处理的异常。示例代码展示了如何在这些事件处理程序中获取异常类型、消息和堆栈信息,并通过消息框显示。这种方法避免了在每个方法中使用try-catch块,提供了一种全局的异常处理方案,特别适用于Windows窗体应用
2025-09-26 13:57:41
146
1
原创 检测程序是否重复运行的C#代码
摘要:本文介绍了一种防止程序重复运行的方法。首先创建一个IsRunning()函数,通过获取当前进程并遍历同名进程,判断程序是否已运行。然后在Main方法中调用该函数,如果检测到程序已运行,则弹出提示并退出,否则正常启动程序。该方法简单有效地实现了应用程序的单实例运行控制。
2025-09-26 13:39:36
133
1
原创 C#ComponentResourceManager未声明或未赋值解决办法
C#ComponentResourceManager未声明或未赋值解决办法
2022-08-09 17:35:42
2284
原创 C#获取类的所有属性(1)
class Program { static void Main(string[] args) { TestA ta = new TestA(); ta.I1 = 1; ta.I2 = 2; object obj = ta; Type t = obj.GetType();//获取对象类型 PropertyInfo[] in.
2022-03-23 17:14:18
3074
原创 【C#】控件Invoke和BeginInvoke的区别
控件Invoke和BeginInvoke的区别,代码实现看实际效果 。Invoke必须等代码完成后,才会执行后面的代码。(同步线程。for循环执行完成后才继续)BeginInvoke执行完代码,马上继续执行后面的代码。看文本控件上显示的值,很容易看出来。(异常线程。for循环未执行完成,直接执行后面的代码)public partial class Form1 : Form { //界面上2个Button 2个Label 2个Textbox 控件 p
2021-09-29 10:38:32
489
原创 C#窗体在跨线程时,对控件属性赋值常用方法
private void Btn_Save_Load_Down_ZIn_Click(object sender, EventArgs e) //事件 { if (InvokeRequired == true) //线程外操作 { this.Invoke(new Action(() => { .
2021-09-24 17:46:40
736
原创 <多线程交互>使用反射的多线程交互,线程绑定类实现多线程
很多线程交互都是在用到的时候new一个线程,然后开始。在我初期使用的时候个人的感觉:1.线程没有统一,太乱。2.写线程交互的时候效率低下,容易出错。3.维护的时候容易遗忘。......反正不好用。以下方式用到部分反射吧,其实也不算。就是程序内部寻找到继承类去实现化线程操作。交互很方便看,把所有继承类放在一个文件夹下面管理:1.能看到整个程序的线程。2.双界面开发可以看到交互时的逻辑变化。3.维护的时候可以有目的性的查找。有更好的线程实现方法,欢迎分享~~~using System;usin
2021-08-27 10:50:27
362
2
原创 (C#)VisaulStudio 远程调试另一电脑步骤(Remote Debugger)
以下是使用个人电脑,调试设备上的工控机时使用。不想在工控机上安装VS,又想使用VS断点调试和查看代码执行情况,有以下很方便的方法供学习和使用。我每次忘记了都会到这里来看一下,记是记不住的,只有写出来多看才行。带红色的地方多关注一下,我犯过错。...
2021-07-08 19:25:00
1272
6
原创 C#事件中使用匿名函数的办法
不使用控件UI拖拉去实现代码界面,直接使用控件类手敲代码时,会常用到事件的匿名函数。下面一句话完美解决了这个问题:button1.Click += new EventHandler((object obj,EventArgs er)=>{});
2021-06-07 18:40:46
665
转载 this.Invoke()的作用与用法(转载:https://www.cnblogs.com/yunmengyunxi/p/6066262.html)
C# this.Invoke()的作用与用法Invoke()的作用是:在应用程序的主线程上执行指定的委托。一般应用:在辅助线程中修改UI线程(主线程)中对象的属性时,调用this.Invoke();在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。正确的做法是将工作线程中涉及更新界面的代码封装为一个方法,通过 Invoke 或者 Begi..
2020-11-27 12:06:29
684
原创 九点标定
本文适用于初学者。首先对概念要清晰:九点标定是点的仿射变换,只是图像行列、和坐标XY的仿射关系,也就是矩阵关系。从只有XY2个坐标轴来看,只有二个方向,所以只能适用于2D。下面具体流程:第一步:制作9个点,相机采图的时候能全部拍到即可。一般以会3X3的行列相等去制作。1.在图像上找到9个圆的中心坐标。(二值化提取区域后排序获得区域行列坐标/使用模板匹配后排序获得行列坐标)2.会用到的一些算子:rgb1_to_gray (Image, GrayImage) RGB图转灰度图mirror
2020-11-16 19:16:05
2527
2
原创 C#无框窗体显示任务栏的2种方法
方法1: private void Form1_Load(object sender, EventArgs e) { //【方法1】 //【】电脑除去任务栏的分辨率大小 this.MaximumSize = new Size(2160, 1380); //【】这一条必须写,否则还是会把任务栏档住,大小随意,尽量不要太大,有的电脑分辨率太小就会出异常 this.M.
2020-08-21 23:23:18
773
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅