委托,事件那点事儿!
引言:教科书中写的如何 如何神秘,如何如何的机制,我QNMLGB,教材就不能说人话吗?什么委托是把一个方法当参数传递,什么事件是特殊的委托。特殊JM,事件就是微软写的委托,完后封装在微软的button等控件中的委托实例。发泄完了。我来给你通俗的讲。错了别怪我,我不是所谓的架构师,也不是大神,我是TMD个愤青程序员。我骄傲。。。。。
切记:事件就是TMD委托的实例
外部
委托参数:
public class 委托参数
{
public int Index;
public string Name;
public 委托参数(int _index,string _name)
{
Index = _index;
Name = _name;
}
}
委托:
public delegate void 委托(委托参数 e);
自定义控件中
事件(实例化委托):
public event 委托 事件;
触发事件:
事件(new 委托参数(1, "名字"));
窗体(用户UI线程)中
实例化自定义控件.事件 += new委托(事件处理函数);
委托成功:就是委托干了点事,并执行了你的方法事件处理函数,还传过来自定义控件的参数
private void 事件处理函数(委托参数 e)
{
e.Index ;
e.Name;
}
C#中的事件,比如Click事件
其实就是
委托
EventHandler
委托参数类
EventArgs
控件中的触发事件
都给你写好了,给你写好了,你写好了,写好了,好了,了,了……………
最终你只是在UI中
button.Click+=new EventHandler(Click);
private void Click(object sender, EventArgs e)
{
}
当你点击按钮时候,按钮在windows消息机制中接收到你的信息【之后】才触发了按钮的事件Click,最后调用了你的事件处理函数。
说白了就是原来你调用自己的函数。现在改button通过委托来调用你的函数。