自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 十八、委托

委托是一种强大的特性,它允许你将方法作为参数传递,从而增加了代码的灵活性和可重用性。通过委托,你可以实现回调、事件处理和异步编程等高级功能。在两个窗体的任意一个窗体上声明来定义一个委托类型,它指定了委托可以引用的方法的签名。委托的声明类似于方法的声明,但不包含方法体。里定义了一个名为 EventH 的委托,它表示一个接受一个 int参数且没有返回值的方法。将Send与一个具体的方法关联起来。这个方法必须匹配委托的签名。创建该委托类型的一个实例,发送的数据用来绑定的事件。

2024-09-10 18:55:15 156

原创 十七、线程的控制

对于启动和结束数量不一样是因为线程的抢占是开闸丢失一部分,所以我们在点击剩下数量的开闸将其他丢失的补充回来即可。5.对按钮1和按钮2点击事件的运行结果。7.(2)这个就是补充回来的线程结果。2.按钮1点击事件开启线程A和B。6.按钮3点击事件开启多线程运行。4.按钮2点击事件用来开闸门。7.(1)按钮3点击事件结果。

2024-09-02 08:45:11 431

原创 定时器的使用

注:这是System.Windows.Forms 主线程的定时器,这个定时器玩玩就好了。在实际工作中不会这样使用。3.补充说明对大量的,刷新快的就需要将一个核心单独给程序运行。(1)创建按钮2、标签和dateTimePicker1控件。(1)创建按钮1、标签1和timer1 控件。第二个就是每一个时间间隔执行一次代码。(2).第一个对定时器设置时间间隔。第三个是开启线程按钮的点击事件。(2)第一个是设置时间间隔。第二个是间隔到时发生的事件。(3)第一个是间隔发生事件。

2024-08-29 15:23:39 431

原创 线程相关知识及应用

注册线程A来运行吃饭函数,注册线程B来运行睡觉函数,注册线程C来控制线程A和B,当线程A运行完之后线程B再运行,运行完后停止线程。第四个是防止线程阻塞,做一个线程的延续,也叫线程的异步来执行Console.WriteLine(task.Result);2.按钮2点击事件,注册一个线程来运行Run这个函数,而thread.Start表示注册的线程开始运行。在按钮4点击事件里第三个是注册线程来运行函数1,在thread.Start里面将需要的参数进行赋值。第四个是注册线程来运行函数2并将需要的参数进行赋值。

2024-08-27 17:26:20 690

原创 用C#控制相机

1.创建主窗体和按钮以及设置控件属性等等。获取相机句柄后可对开始采集按钮进行点击。3.创建一个构造函数可以用相机实时拍照。2.获取相机句柄按钮点击事件。4.开始采集按钮点击事件。5.关闭相机按钮点击事件。

2024-08-22 17:59:08 393

原创 2.阈值分割

(4)对两个勾选框进行互斥设置并且再勾选框勾中时对应的控件显示出来。(6)确认参数按钮的点击事件主要将选择的参数传到主窗体上。(2)添加下拉框参数和确定参数按钮点击事件。(2)创建阈值分割窗体和需要的按钮等等。(5)对控件的可见于不可见进行函数封装。剩余步骤可以指调用halcon里的算子。(1)创建数组特征筛选窗体和相关控件。(3)点击按钮跳转到阈值分割的窗体。(1)创建设置阈值分割参数按钮。(7)初始化控件和添加参数。

2024-08-22 17:57:27 251

原创 开始搭建每一步图片处理的按钮

处理图片的软件中的读取图片按钮

2024-08-21 17:22:37 341

原创 用C#创建和使用窗体应用相关的控件

窗体的创建和控件使用

2024-08-20 17:20:57 196

原创 用C#代码直接生成窗体

(4)构造一个函数进行窗体的设置和按钮的设置。(2)成员初始化并将按钮添加到窗体里。(3)构造一个显示窗体的函数。(1)添加引用我们创建的类库。(5)鼠标点击事件的语句。Step4创建主函数文件。(2)调用类文件的东西。Step1创建类文件。(1) 创建成员变量。

2024-08-20 17:17:49 196

原创 在一个主函数文件里去调用另一个文件里类文件

Step3:写完类文件后按ctrl+b运行,运行后会在以下路径生成.doll文件。Step5:右击引用,添加引用,找到我们运行的.doll文件并添加最后点击确定。注意:(1)类文件修改后需要重新运行并且主函数文件也需要重新添加.doll文件。(5)然后就可以对类文件里静态和非静态的各个类进行引用。(3)然后就可以对类文件里静态和非静态的各个类进行引用。(4)复制类文件的bin里面的Debug的路径。将复制的路径进行添加,点击要添加的文件。Step4:创建一个有主函数的文件。Step2:在类文件里写代码。

2024-08-20 17:12:20 235

原创 对静态和非静态的调用

(2)对于非静态则需要先创建对象,然后再对创建的对象进行访问。(1)对于静态则可以直接调用访问如上图中的“1、2、3”。

2024-08-20 17:10:15 259

原创 从0开始学习C#对类的认识

封装一个求两个数最大值的函数,调用函数进行求值。1. 对public和private的理解。其中枚举性别是对参数Sex的设置。

2024-08-20 17:09:06 162

原创 学习C#相关的语句

(1)ADD,Sub是取的函数名,num1和num2是两个参数,对于int要有返回值return。(4)先打印str,再调用GetString函数,结果“我是输出+str”2)分别将各个枚举元素放到数组的对应位置里。方法二:创建数组,用for循环一次赋值。2.知道一些简单的数据类型。(3)对void没有返回值。(6)用不同的方法进行赋值。1.知道开头代码的意义。方法三:直接对数组赋值。方法一:分别一一赋值。

2024-08-20 17:07:41 298

原创 从0开始学习C#

Step2:选择控制台,学习语法,然后点击下一步。Step3:修改项目名称,选择项目保存的路径。Step1:点击创建新项目。

2024-08-20 17:03:42 288

原创 对于参数多的函数进行类的封装

(2)第二个方法是直接写一个函数将参数放在一个函数里面,再用switch语句判断使用哪一个阈值分割的方法。4. 由于第二个方法是直接写一个函数将参数放在一个函数里面,显得构造函数里参数太多,因此我们需要封装类。(1)第一个方法是我们可以分别写普通阈值分割和自动阈值分割构造函数。3. 在ImageHelper文件中对于阈值分割有两种方法。7.这个就是传普通阈值分割方法的两个参数。(3) 通过自动阈值分割方法实现的结果。这个就是传自动阈值分割方法的两个参数。(2)通过普通阈值分割方法实现的结果。

2024-08-20 17:01:16 177

原创 C#中的重载知识

1.对于同一个函数名在返回值类型不同、每个参数类型不同、函数参数个数不同,都代表在同一个函数名下不同的函数。2.对于同一个函数名,区分使用哪一个函数则需要看参数的类型和函数的参数类型相对应。

2024-08-20 16:59:35 102

原创 学习使用halcon和C#的联合

5.在工具箱里搜索lable,textbox,button,以及需要的黑色窗体。(1)这个是通过读取图片按钮选区的图片并进行图片处理之后的截图。图片路径点击确认后窗体显示读取的图片以及下拉框显示的文本。12.在属性里设置每一个控件的变量名和文本框。(2)这个是选取文件路径按钮后显示的图片路径。6.在属性里设置每一个控件的变量名和文本框。16.选取图片路径按钮的点击事件构造函数。14. 对读取图片的按钮进行构造函数。7.对读取图片的按钮进行构造函数。1.创建一个窗体应用文件。9.运行程序出现以下错误。

2024-08-19 19:15:08 243

空空如也

空空如也

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

TA关注的人

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