麻烦各位高手Help help 我!
看书上讲的委托的例子我也可以理解。
比如:经理和员工,经理要监视员工是否玩游戏。如果员工开始玩游戏就会触发事件PlayGame,然后通知经理。这个事件触发是我在代码里调用Game()的。
但是联想到button就搞不懂了,为什么鼠标单击一下按钮就会触发click事件呢?这边的鼠标单击相当于我调用Game()吗?
看书上讲的委托的例子我也可以理解。
比如:经理和员工,经理要监视员工是否玩游戏。如果员工开始玩游戏就会触发事件PlayGame,然后通知经理。这个事件触发是我在代码里调用Game()的。
但是联想到button就搞不懂了,为什么鼠标单击一下按钮就会触发click事件呢?这边的鼠标单击相当于我调用Game()吗?
鼠标点击的时候button会接收到系统发送的鼠标点击消息,然后触发click事件
这个委托的调用是.NET封装好了的,你看不到而已。
对按钮类来说,它本身提供了clik事件代理,也就是在应用程序告诉这个button它被单击了,它该做什么事。简单地说,就是做button类的人,自己写了些东西让它在自己被单击后执行,比如style的变化拉(按钮显示出被按下又弹起的效果),做一些其他我们看不见的操作后,顺带帮你做一些事情。但是写这个类的时候并不知道以后会做哪些事情,就提供了一个代理,用于给用户加入实际需要做的事情。大家多多指正~
好像有那么一点点感觉了!过会结贴,让我再理解理解。
鼠标单击->生成硬件中断->Windows接受中断,生成消息放入对应窗口的消息队列->窗口有消息循环处理过程,读取消息->调用button的Click事件这些底层的东西在.NET里都被隔离了。