C#委托与事件的使用

本文介绍了在C#中如何使用委托和事件来实现在子窗口Form1中点击‘主界面’按钮后调出父窗口StartUpWnd的功能。通过对比早期使用定时器检查状态的不科学方法,详细讲解了在子窗口声明事件、发出事件以及在父窗口中连接事件的步骤,展示了委托和事件在解决此类问题上的优势。

功能要求:

有两个窗口类,分别是StartUpWnd类以及Form1类,需要在StartUpWnd界面中点击“”运行“按钮”进入Form1界面,同时需要在Form1界面上点击“主界面”按钮重新调出“主界面”。

解决方案:

第一个功能非常基本,因为程序运行时出现的就是“主界面”,对其中的“运行”按钮响应的事件中加入调出Form1的代码即可,不再赘述。重点是功能2,如何在子界面中调出父窗口呢?要是在Qt中用信号槽的方式也很简单,但由于初学C#,所以我前期采用的是比较笨的方法,具体实现方案是:在父窗口中建一个一直在线的定时器,当子窗口中点击了“主界面”按钮后将其一个成员变量置位,父窗口中的定时器一直在判断该成员变量的值,若需要显示,则显示主界面。

这个方法可以实现功能但是...非常不科学。

在学习了C#中委托事件之后,我意识到这可以用事件的方式完成。

①在子窗口Form1中声明事件:

        /// <summary>
        /// 创建事件收到打开主界面的委托
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public delegate void OnRecievedHandler(object sender, EventArgs e);

        /// <summary>
        /// 点击“主界面”按钮将引发此事件
        /// </summary>
        public event OnRecievedHandler ToShowMainPage;

②在子窗口Form1中发出事件:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值