C#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法)
2022/4/24 1:12:52
本文主要是介绍C#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
以下是学习笔记
思路:
定时器 System.Timer.Timer
过程状态 ProcessState 1 存料 -1 取料 0正常
要实现的功能:
系统复位:两个子窗体之间交互:【手动窗体】(子窗体)的复位按钮来复位【监控窗体】(子窗体)的状态
两种方法:
【1】方法1: 双重委托,通过一个媒介(主窗体)把两个子窗体关联起来
【2】方法2:静态的委托对象
方法1:双重委托,通过一个媒介(主窗体)把两个子窗体关联起来
【1.1】,执行者中要有一个执行的方法:监控窗体(子窗体):新建一个系统复位的方法
/// <summary> /// 监控窗体中:系统复位的方法 /// </summary> public void SystemReset() { //复位操作 AlarmInfoList = new List<string>(); RefreshAlarm(); }
【1.2】,主窗体:创建一个为委托和方法
//主窗体:创建一系统复位的委托 private Action SystemReset;
/// <summary> /// 主窗体中:系统复位的方法 /// </summary> private void SysReset() { //执行主窗体中的SystemReset委托 this.SystemReset?.Invoke(); }
【1.3】,手动窗体(子窗体):创建一个为委托和方法
//手动窗体:创建一个系统复位委托对象 public Action SystemReset;
/// <summary> /// 手动窗体的复位按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_reset_Click(object sender, EventArgs e) { //调用手动窗体的SystemReset委托 this.SystemReset?.Invoke(); }
【1.4】,手动窗体的复位按钮--》调用手动窗体的复位委托--》调用主窗体的复位方法--》调用主窗体的复位委托--》监控窗体的复位方法
方法2:静态的委托对象
【2.1】,执行者中要有一个执行的方法:监控窗体(子窗体):新建一个系统复位的方法
/// <summary> /// 监控窗体中:系统复位的方法 /// </summary> public void SystemReset() { //复位操作 AlarmInfoList = new List<string>(); RefreshAlarm(); }
【2.2】在Program中,创建全局变量,静态的复位委托
【2.3】主窗体中,打开监控窗体的时候,全局变量静态委托绑定监控窗体的SystemReset方法
方法2的应用案例:
A窗体调用B窗体的方法
【1】在全局变量GlobalVariable中添加1个静态委托
/// <summary> /// 设置监控窗体的IO /// </summary> public static Action<string> SetIOAction;
【2】 B窗体
GlobalVariable.SetIOAction += SetOut;
实际执行的方法
public void SetOut(string methodName) { MethodInfo method = GetType().GetMethod(methodName); method.Invoke(this, null); }
【3】A窗体
GlobalVariable.SetIOAction(methodName);
这篇关于C#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#