- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
说的通俗一些,就是:
有一个叫做EventHandler 的家伙,他会告诉你(主程序),有一些事情发生了:这个事情是谁导致的呢?是某个object类型对象导致的,它用Source或Sender来表示。这个事情是什么事呢?e的内容就是事情的内容了。
至于Source和Sender,没有区别,你想用哪个就用哪个,其实都是一样的。
所以,我们在程序中的事件处理函数就是依赖于这个东西实现的:比方说你点了一个按钮,程序怎么知道应该用哪个函数来处理这个动作呢?那么 EventHandler 这个家伙会告诉程序:button1(sender)被点击(e)了,请调用对应的处理函数。当然这个函数是谁,这个函数要做什么,是由你自己写的。
再深入一层,这个过程实际上就是:你的动作被windows捕获,windows把这个动作作为系统消息发送给程序(可以看message结构),程序从自己的消息队列中不断的取出消息,并在消息循环中寻找对应的处理方式,这时message结构中的类似于sender和e的东东就起到了引导程序使用正确的处理函数的作用。
归根究底,这个sender和e及其一整套的处理方式,只不过是windows消息机制的另外一种表现
罢了。
是C#.NET的.
objectsender发出事件的对象System.EventArgse 对象中的数据
如果是按钮button的话,那sender就是那个button,
e是事件参数,在某些事件里,e用处不大,比如在MouseEventArgs 的Mouse 事件中,可以看到e包括mouse 的坐标值等,以供你的程序使用。
=================================================
(objectsender,EventArgse) 是C#里面的事件响应的代码,结合网上的一些资料,总结如下:object是事件的激发控件,或叫事件源:
具体我们可以用MessageBox.Show(sender.ToString())直接输出,我们可以直接看到;
EventArgs是包含事件数据的类的基类,用于传递事件的细节:
e是事件参数,也就是说在定义事件的类里定义的那些属性,在某些事件里,e用处不大;
所包含的细节多少,根据各种EventArgs的定义而定,如EventArgs就是一个空值,我们在VS环境中右键转到定义处就可以发现其定义是这样:
publicclassEventArgs
{
//摘要:
// 表示没有事件数据的事件。
publicstaticreadonlyEventArgsEmpty;
//摘要:
// 初始化System.EventArgs 类的新实例。
publicEventArgs();
}
我想,这也是网上有的网友说在定义事件时候可以不要EventArgs参数的原因;有的即使在事件定义时定义了它,也不必在事件里理会它;
如MouseEventArgs 是EventArgs的子类,那么它就定义了许多可以输出的值,其定义如下:
//摘要:
// 为System.Windows.Forms.Control.MouseUp 、System.Windows.Forms.Control.MouseDown
// 和System.Windows.Forms.Control.MouseMove 事件提供数据。
[ComVisible(true)]
publicclassMouseEventArgs:EventArgs
{
//摘要:
// 初始化System.Windows.Forms.MouseEventArgs 类的新实例。
//
//参数:
// clicks:
// 鼠标按钮曾被按下的次数。
//
// delta:
// 鼠标轮已转动的制动器数的有符号计数。
//
// Y:
// 鼠标单击的y坐标(以像素为单位)。
//
// button:
// System.Windows.Forms.MouseButtons 值之一,它指示曾按下的是哪个鼠标按钮。
//
// x:
// 鼠标单击的x坐标(以像素为单位)。
publicMouseEventArgs(MouseButtonsbutton,intclicks,intx,inty,intdelta);
//摘要:
// 获取曾按下的是哪个鼠标按钮。
//
//返回结果:
// System.Windows.Forms.MouseButtons 值之一。publicMouseButtonsBu
文档评论(0)