C#--事件驱动在上位机中的应用【二】(自定义控件)

以下是学习笔记:

1,在项目中添加“类库”,在“类库”中添加“用户控件”

 2,使用TableLayoutPanel来布局

 3,添加需要的图片资源

【1】创建资源文件:Resources.resx。类库项目默认是没有这一项的

 【2】创建资源项目成功后,就多了一个Resources.resx目录

 【3】双击Resource.resx。添加资源-添加现有文件

 【4】添加图片

4,使用PictureBox控件来添加图片

【1】

 【2】调整合适大小,设置这2个属性

 5,添加Label显示设备的名称

注意:如果用户控件拉动后,显示比例没有变化,就重新生成一下就可以啦

 6,使用自定义控件,新建一个窗体项目。可以直接当做控件一样拖入就可以啦

 发现的问题:“设备名称”不能修改,这用直接使用没有意义

7,解决上面的“设备名称”不能修改的问题

【1】打开自定义控件的代码,增加一个属性

【2】重新生成,再次拖入自定义控件后,就有修改“设备名称”属性的地方了。

 能修改名称其实也没什么意思的,要实现通过按钮的颜色来显示设备的状态,点击按钮可以切换状态

8,解决显示状态的问题,其实增加一个属性,来切换显示的图片

【1】增加属性的代码

 【2】效果如下:

9,实现点击按钮,来切换状态

【1】自定义控件的自定义的事件

 【2】属性窗口中就多了2个事件:

 【3】双击自定义控件的自定义事件,在主窗体程序中就多了一个事件关联的代码

 给自定义控件增加3个属性,来区分PLC的地址

 对应的PLC的地址:

 【4】事件的处理

这时候点击启动停止按钮就可以控制PLC了

 能控制,但是实时状态没有变化

【5】实时状态的显示

代码:

 效果:

以上就能通过自定义控件来实现控制和显示PLC的状态。

假如PLC控制的又多了2个设备:

 主窗体程序中又要多加2个自定义的控件。这样的话设备2和设备3的事件代码又要重新写,设备越多的话,代码越多会很复杂。想解决这个问题,见下一篇章

 

· 

原文地址:https://www.cnblogs.com/baozi789654/p/14094968.html