C#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法)

发布时间:2022-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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】,手动窗体的复位按钮--》调用手动窗体的复位委托--》调用主窗体的复位方法--》调用主窗体的复位委托--》监控窗体的复位方法

C#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法)

 

 

方法2:静态的委托对象

【2.1】,执行者中要有一个执行的方法:监控窗体(子窗体):新建一个系统复位的方法

 

        /// <summary>
        /// 监控窗体中:系统复位的方法
        /// </summary>
        public void SystemReset()
        {
            //复位操作
            AlarmInfoList = new List<string>();
            RefreshAlarm();
        }

  

【2.2】在Program中,创建全局变量,静态的复位委托

C#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法)

 

 【2.3】主窗体中,打开监控窗体的时候,全局变量静态委托绑定监控窗体的SystemReset方法

C#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法)

 

方法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#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法)全部内容,希望文章能够帮你解决C#--运动控制--指示灯闪烁和系统复位(两个子窗体交互:一个子窗体按钮控制另外一个子窗体的方法)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。