button1_Click(object sender,EventHandler e)

{
Button button=(Button)sender;
button.Text="text property has been changed at its event";
}

object 是事件的激发控件,或叫事件源:具体我们可以用MessageBox.Show(sender.ToString())直接输出,我们可以直接看到;

如果一个按钮button1,我点击这个按钮﹕sender就是按鈕﹐因為事件是在按鈕內部触发的。如果要在程序中使用sender,一般情況下你就必須知道sender是哪个类型的(比如在上面這中情況中必須只要sender的type是Button),然后在转换到那個类型中去﹐這樣你就可以在事件中访问事件发送者的数据

EventArgs是包含事件数据的类的基类,用于传递事件的细节:

e是事件参数,也就是说在定义事件的类里定义的那些属性,在某些事件里,e用处不大;
所包含的细节多少,根据各种EventArgs的定义而定,如EventArgs就是一个空值,我们在VS环境中右键"转到定义处"就可以发现其定义是这样:

public class EventArgs
{
// 摘要:
// 表示没有事件数据的事件。
public static readonly EventArgs Empty;
// 摘要:
// 初始化 System.EventArgs 类的新实例。

public EventArgs();
}

如MouseEventArgs是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 类的新实例。
//
// 参数:
// clicks:
// 鼠标按钮曾被按下的次数。
//
// delta:
// 鼠标轮已转动的制动器数的有符号计数。
//
// Y:
// 鼠标单击的 y 坐标(以像素为单位)。
//
// button:
// System.Windows.Forms.MouseButtons 值之一,它指示曾按下的是哪个鼠标按钮。
//
// x:
// 鼠标单击的 x 坐标(以像素为单位)。
比如在MouseEventArgs的Mouse事件中,可以看到e包括mouse的坐标值等,以供你的程序使用。e参数就是通过这些定义的属性进行调用或输出的,这里我们就可以调用e.Y或e.X获得具体的参数细节了.

C#中object sender,EventHandler e有个毛作用的更多相关文章

  1. 浅析C# 中object sender与EventArgs e (转)

    一.了解C#中的预定义事件处理机制    在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理. EventArgs是包含事件数据的类的基类,用于传递事件的细节. Ev ...

  2. C#之winform基础 button1_Click(object sender, EventArgs e)中sender是啥及其用法

    镇场诗:          大梦谁觉,水月中建博客.百千磨难,才知世事无常.          今持佛语,技术无量愿学.愿尽所学,铸一良心博客.---------------------------- ...

  3. WinForm事件中的Object sender和EventArgs e参数

    Windows程序有一个事件机制.用于处理用户事件. 在WinForm中我们经常需要给控件添加事件.例如给一个Button按钮添加一个Click点击事件.给TextBox文本框添加一个KeyPress ...

  4. Visual Studio2013应用笔记---WinForm事件中的Object sender和EventArgs e参数

    Windows程序有一个事件机制.用于处理用户事件. 在WinForm中我们经常需要给控件添加事件.例如给一个Button按钮添加一个Click点击事件.给TextBox文本框添加一个KeyPress ...

  5. object sender ,EventArs e

    引用:http://blog.csdn.net/kongbai308416350/article/details/4233786 说的通俗一些,就是: 有一个叫做EventHandler 的家伙,他会 ...

  6. 委托与事件代码详解与(Object sender,EventArgs e)详解

    委托与事件代码详解 using System;using System.Collections.Generic;using System.Text; namespace @Delegate //自定义 ...

  7. 关于(object sender, EventArgs e)

      sender是事件源 就是指发起这个事件的对象(控件)//表示触发事件的那个控件比如说你按下按钮,那么sender就是按钮 又如:textboxchange,sender就是该textbox,在事 ...

  8. (object sender,EventArgs e)是什么?

    object sender:发出事件的对象 EventArgs e:对象中的数据

  9. .net控件事件中的Sender

    private void button2_Click(object sender, RoutedEventArgs e) { } 最近看WPF内容,回顾下.net大家天天都在用,却不是十分关注的一个对 ...

随机推荐

  1. Oracle高版本导出dmp导入Oracle低版本报错:"不是有效的导出文件、头部验证失败"解决方法

    从Oracle高版本中导出dmp,然后导入到Oracle低版本时会报错:"不是有效的导出文件.头部验证失败",解决方法: 方法一:下载软件:AlxcTools,打开后选择要修改的文 ...

  2. DNS服务器的原理

    当用户去访问一个网站(百度)的时候,首先去请求dns服务器,根据对应的域名返回所在ip,然后再使用ip去访问自己所在服务器空间.简单的说,DNS服务器就像114客服,dns服务器是树状结构的,dns服 ...

  3. (转)从内存管 理、内存泄漏、内存回收探讨C++内存管理

    http://www.cr173.com/html/18898_all.html 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟 ...

  4. Sql2008中使用DataTable作为存储过程的参数

    使用DataTable作为存储过程的参数   最近工作中写了几个存储过 程,需要向存储过程中传递字符串,因为SQL Server 2000中没有内置类似于 split 的函数,只好自己处理,将前台数据 ...

  5. Android中全局搜索(QuickSearchBox)详解

    http://blog.csdn.net/mayingcai1987/article/details/6268732 1. 标题: 应用程序如何全面支持搜索 2. 引言: 如果想让某个应用程序支持全局 ...

  6. 为Activity设置特定权限才能启动

    1.在AndroidManifest文件中,声明一个权限,并在activity中添加属性 <!--声明权限,权限名一般为包名+permission+类名 --> <permissio ...

  7. while read line无法循环read文件

    while read line 与for循环的区别 例子:要从一个ip列表中获取ip.port,然后ssh ip 到目标机器进行特定的command操作ssh -o StrictHostKeyChec ...

  8. js 中读取JSON的方法探讨

    方法一:函数构造定义法返回 var strJSON = "{name:'json name'}";  //得到的JSONvar obj = new Function("r ...

  9. POJ 2112.Optimal Milking (最大流)

    时间限制:2s 空间限制:30M 题意: 有K台挤奶机(编号1~K),C头奶牛(编号K+1~K+C),给出各点之间距离.现在要让C头奶牛到挤奶机去挤奶,每台挤奶机只能处理M头奶牛,求使所走路程最远的奶 ...

  10. 『重构--改善既有代码的设计』读书笔记----Inline Class

    如果某个类没有做太多的事情,你可以将这个类的所有特性搬移到另外一个类中,然后删除原类.可以看到,Inline Class正好和Extract Class相反,后者是将一个巨类分解成多个小类从而来分担责 ...