委托和事件

窗体的这条属性记得设置为None
在这里插入图片描述
如果不设置,窗体:
在这里插入图片描述

要求:制作登录界面和好友界面,在登录界面点击登录,跳转到好友界面,登录界面由于是主程序不能关闭只能隐藏。好友界面有一个注销按钮,点击实现退出好友界面,打开登录界面
在这里插入图片描述
点击登录:
在这里插入图片描述
点注销又回到登录界面
代码如下:
登录窗体的点击事件:
在这里插入图片描述
这时由于我们在实例化好友窗体时传入了this,即当前窗体,所以我们需要在FriendForm窗体中写一个带参的构造方法。
在这里插入图片描述
注意:InitializeComponent();代码不能省略,这行代码是初始化界面的,如果去掉,则窗体无法正常显示。

当点击注销按钮时,注销按钮的点击事件:
在这里插入图片描述
注意:
可以在登录窗体中写一个方法,用于显示当前窗体,然后在好友窗体中调用该方法。
登录窗体:
在这里插入图片描述
好友窗体:
在这里插入图片描述
以上所讲的方法不符合低耦合的开发概念
以上两个窗体关联度太高,如果有一个窗体不存在,就会导致另外一个窗体需要大面积的修改。

所以重点来了:使用委托和事件

委托的关键字:delegate
委托实质上就是把方法作为参数传递。

首先,登录窗体中,实例化好友窗体的时候,将ShowForm()方法作为参数传递。
在这里插入图片描述
在这里插入图片描述
我们也可以换一种方法,用Action关键字更加简单
在这里插入图片描述
以上的方法还不够简单,所以我们用委托事件:
事件有消息触发机制
在这里插入图片描述
在这里插入图片描述
如果去掉以下这行代码:
在这里插入图片描述
在好友界面点击注销时,就会出现如下错误:
在这里插入图片描述
所以我们好友窗体中做一个判断即可。
在这里插入图片描述
所以我们把之前注释的代码还原。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值