eventargs是包含事件数据的类的基类,用于传递事件的细节。
一般在源码中是以这样的情况出现的:protected void EventHandler(object sender,EventArgs e)
EventArgs是一个委托声明,这里的参数,前者是一个对象(其实这里传递的是对象的引用,如果是button1的click事件则sender就是button1),后面是包含事件数据的类的基类。
其实简单点说就是对象(object)sender导致了某个事件的发生,事件的内容就是(e)
在程序中的事件处理函数就是依赖EventHandler实现的:
比方说你点了一个按钮,程序怎么知道应该用哪个函数来处理这个动作呢?那么EventHandler会告诉程序:"button1(sender)被点击(e)了,请调用对应的处理函数"。当然这个函数是谁,这个函数要做什么,是由你自己写的。
再深入一层,这个过程实际上就是:你的动作被windows捕获,windows把这个动作作为系统消息发送给程序(可以看message结构),程序从自己的消息队列中不断的取出消息,并在消息循环中寻找对应的处理方式,这时message结构中的类似于sender和e就起到了引导程序使用正确的处理函数的作用。
归根究底,这个sender和e及其一整套的处理方式,只不过是windows消息机制的另外一种表现