[关键字的说明]object sender,EventArgs e的一些讲解.docx

上传人:牧羊曲112 文档编号:3170456 上传时间:2023-03-11 格式:DOCX 页数:6 大小:38.76KB
返回 下载 相关 举报
[关键字的说明]object sender,EventArgs e的一些讲解.docx_第1页
第1页 / 共6页
[关键字的说明]object sender,EventArgs e的一些讲解.docx_第2页
第2页 / 共6页
[关键字的说明]object sender,EventArgs e的一些讲解.docx_第3页
第3页 / 共6页
[关键字的说明]object sender,EventArgs e的一些讲解.docx_第4页
第4页 / 共6页
[关键字的说明]object sender,EventArgs e的一些讲解.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[关键字的说明]object sender,EventArgs e的一些讲解.docx》由会员分享,可在线阅读,更多相关《[关键字的说明]object sender,EventArgs e的一些讲解.docx(6页珍藏版)》请在三一办公上搜索。

1、关键字的说明object sender,EventArgs e的一些讲解说的通俗一些,就是: 有一个叫做EventHandler 的家伙,他会告诉你,有一些事情发生了:这个事情是谁导致的呢?是某个object类型对象导致的,它用Source或Sender来表示。这个事情是什么事呢?e的内容就是事情的内容了。 至于Source和Sender,没有区别,你想用哪个就用哪个,其实都是一样的。 所以,我们在程序中的事件处理函数就是依赖于这个东西实现的:比方说你点了一个按钮,程序怎么知道应该用哪个函数来处理这个动作呢?那么 EventHandler 这个家伙会告诉程序:button1(sender)被点

2、击(e)了,请调用对应的处理函数。当然这个函数是谁,这个函数要做什么,是由你自己写的。 再深入一层,这个过程实际上就是:你的动作被windows捕获,windows把这个动作作为系统消息发送给程序,程序从自己的消息队列中不断的取出消息,并在消息循环中寻找对应的处理方式,这时message结构中的类似于sender和e的东东就起到了引导程序使用正确的处理函数的作用。 归根究底,这个sender和e及其一整套的处理方式,只不过是windows消息机制的另外一种表现罢了。 是C#.NET的. object sender 发出事件的对象 System.EventArgs e 对象中的数据 如果是按钮b

3、utton的话,那sender就是那个button, e是事件参数,在某些事件里,e用处不大,比如在MouseEventArgs的Mouse事件中,可以看到e包括mouse的坐标值等,以供你的程序使用。 = ( object sender , EventArgs e ) 是C#里面的事件响应的代码,结合网上的一些资料,总结如下: object 是事件的激发控件,或叫事件源: 具体我们可以用MessageBox.Show(sender.ToString)直接输出,我们可以直接看到; EventArgs是包含事件数据的类的基类,用于传递事件的细节: e是事件参数,也就是说在定义事件的类里定义的那些

4、属性,在某些事件里,e用处不大; 所包含的细节多少,根据各种EventArgs的定义而定,如EventArgs就是一个空值,我们在VS环境中右键转到定义处就可以发现其定义是这样: public class EventArgs / 摘要: / 表示没有事件数据的事件。 public static readonly EventArgs Empty; / 摘要: / 初始化 System.EventArgs 类的新实例。 public EventArgs; 我想,这也是网上有的网友说在定义事件时候可以不要EventArgs参数的原因; 有的即使在事件定义时定义了它,也不必在事件里理会它; 如Mous

5、eEventArgs是EventArgs的子类,那么它就定义了许多可以输出的值,其定义如下: / 摘要: / 为 System.Windows.Forms.Control.MouseUp、System.Windows.Forms.Control.MouseDown / 和 System.Windows.Forms.Control.MouseMove 事件提供数据。 ComVisible(true) public class MouseEventArgs : EventArgs / 摘要: / 初始化 System.Windows.Forms.MouseEventArgs 类的新实例。 / /

6、参数: / clicks: / 鼠标按钮曾被按下的次数。 / / delta: / 鼠标轮已转动的制动器数的有符号计数。 / / Y: / 鼠标单击的 y 坐标。 / / button: / System.Windows.Forms.MouseButtons 值之一,它指示曾按下的是哪个鼠标按钮。 / / x: / 鼠标单击的 x 坐标。 public MouseEventArgs(MouseButtons button, int clicks, int x, int y, int delta); / 摘要: / 获取曾按下的是哪个鼠标按钮。 / / 返回结果: / System.Window

7、s.Forms.MouseButtons 值之一。 public MouseButtons Button get; / / 摘要: / 获取按下并释放鼠标按钮的次数。 / / 返回结果: / 一个 System.Int32,包含按下并释放鼠标按钮的次数。 public int Clicks get; / / 摘要: / 获取鼠标轮已转动的制动器数的有符号计数。制动器是鼠标轮的一个凹口。 / / 返回结果: / 鼠标轮已转动的制动器数的有符号计数。 public int Delta get; / / 摘要: / 获取鼠标在产生鼠标事件时的位置。 / / 返回结果: / 一个 System.Dra

8、wing.Point,包含鼠标的 x 和 y 坐标。 public Point Location get; / / 摘要: / 获取鼠标在产生鼠标事件时的 x 坐标。 / / 返回结果: / 鼠标的 X 坐标。 public int X get; / / 摘要: / 获取鼠标在产生鼠标事件时的 y 坐标。 / / 返回结果: / 鼠标的 Y 坐标。 public int Y get; 比如在MouseEventArgs的Mouse事件中,可以看到e包括mouse的坐标值等,以供你的程序使用。e参数就是通过这些定义的属性进行调用或输出的,这里我们就可以调用e.Y或e.X获得具体的参数细节了. E

9、ventHandler是一个委托声明如下 public delegate void EventHandler( object sender , EventArgs e ) 所以,所有形如: void 函娄名(object 参数名,EventArgs 参数名); 的函数都可以作为Control类的Click事件响应方法了。object的参数名一般用Source或Sender来表示,两个没有区别。 如下面所定义的一个事件响应方法: private void button1_Click(object sender, System.EventArgs e) 参数object sender表示引发事件的

10、对象,System.EventArgs e 代表事件的相应信息。 下面我们可以看下Button类的事件声明,以Click事件为例。 public event EventHandler Click; 这里定义了一个EventHandler类型的事件Click private void button1_Click(object sender, System.EventArgs e) . 这是我们和button1_click事件所对应的方法。 那我们怎么把这个方法和事件联系起来呢,请看下面的代码。 this.button1.Click += new System.EventHandler(this.button1_Click); 把this.button1_Click方法绑定到this.button1.Click事件。 以上原理简单理解下就可以了,在实际操作中我们只需要在代码里面调用Web控件里面使用button控件,里面的属性 OnClick=button1_Click 语句便可以起到调用方法的功能了。在VS。NET中可以直接在设计页面加入button, 而上面红色的那行代码编译器会自动实现。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号