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

又如:textboxchange,sender就是该textbox,在事件处理中就可以用sender代替textbox.   
  如:

  (sender   as   TextBox).Text="fdsaewfsda";   

如果同一类控件处理方法相同,可以只写一个事件处理,其他的用这一个就行了sender就会指代当前触发事件的控件

EventArgs是事件参数
//该事件传入的参数,比如说你用鼠标点击窗体
那么EventArgs是会包含点击的位置等等参数
它用来辅助你处理事件

在日常开发中,大多数控件都需要写触发函数,而触发函数中的两个参数 sender 和 e 的作用,就不容小视。

看下面的例子:

<asp:Button ID="Button1" runat="server" Text="Button1" OnClick="Button_OnClick" />

<asp:Button ID="Button2" runat="server" Text="Button2" OnClick="Button_OnClick" />

<asp:Button ID="Button3" runat="server" Text="Button3" OnClick="Button_OnClick" />

在上面的程序中设计了三个Button控件,他们点击后触发的函数都为Button_OnClick;那么我如何分辨出到底是哪一个Button进行了点击呢,就要用到触发函数中的参数来判断。

protected void Button_OnClick(object sender, EventArgs e)
{
Button btn = (Button)sender;
Response.Write(btn.ID);
}
protected void Button_OnClick(object sender, EventArgs e)
{
Button btn = (Button)sender;
Response.Write(btn.ID);
}

这时,我将类型为object的sender变量进行转型为Button后,就可以通过他的ID属性来判断。

另一个例子:

<asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton_OnClick" />

我设计了一个ImageButton控件,进行点击操作时触发的函数为ImageButton_OnClick;

protected void Button_OnClick(object sender, ImageClickEventArgs e)
{
Response.Write("X坐标:"+e.X.ToString());
Response.Write("Y坐标:"+e.Y.ToString());
}
protected void Button_OnClick(object sender, ImageClickEventArgs e)
{
Response.Write("X坐标:"+e.X.ToString());
Response.Write("Y坐标:"+e.Y.ToString());
}

这时,我在图片上任意地方点击后,就会显示出点击时的X,Y坐标。

但是,参数e经常是与控件的CommandName与CommandArgument属性绑定起来进行传参的。

他们所要触发的相应操作是OnCommand而不是OnClick操作。

例:

<asp:Button ID="Button1" runat="server" Text="Button1" CommandName="Button1" OnCommand="Button_OnCommand"/>

<asp:Button ID="Button2" runat="server" Text="Button2" CommandName="Button2" OnCommand="Button_OnCommand"/>

<asp:Button ID="Button3" runat="server" Text="Button3" CommandName="Button3" OnCommand="Button_OnCommand" />

protected void Button_OnCommand(object sender, CommandEventArgs e)
{
Response.Write(e.CommandName);
Response.Write(e.CommandArgument);
}

关于(object sender, EventArgs e)的更多相关文章

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

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

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

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

  3. checkBox1_CheckedChanged(object sender, EventArgs e)和checkBox1_CheckStateChanged(object sender, EventArgs e)不同

    using System; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms ...

  4. C# 函数参数object sender, EventArgs e

    object sender:表示触发事件的控件对象EventArgs e:表示事件数据的类的基类 Windows程序有一个事件机制.用于处理用户事件. 在WinForm中我们经常需要给控件添加事件.例 ...

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

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

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

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

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

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

  8. object sender ,EventArs e

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

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

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

随机推荐

  1. http升https笔记

    证书申请的: 1.lets encrypt 国际公益项目发展很快的,不过在国内暂时有些支持度还不够高,如微信安卓版就不认lets encrypt的证书.跳转进去一直处于空白页状态 2.沃通证书  国内 ...

  2. listView当中有嵌套了有onClickListener的控件时ListView自身的onItemClick无响应的解决方案

    Ref:http://www.cnblogs.com/bluestorm/archive/2013/03/24/2979557.html android:descendantFocusability ...

  3. PAT A 1022. Digital Library (30)【结构体排序检索】

    https://www.patest.cn/contests/pat-a-practise/1022 直接模拟, 输入,按id排序,检索 #include <iostream> #incl ...

  4. [Unity3D]NGUI用Sprite动画和屏幕自适应做游戏开始场景

    我们在玩任何一款手游产品时,都是先上来个logo界面,游戏欢迎界面等,这就意味着我们要做一款游戏需要多个场景,场景之间来回切换实现游戏逻辑,unity也不例外,所以从本篇开始将会介绍如何搭建多个场景, ...

  5. Linux学习笔记(6)-文件I/O

    持续一个礼拜的出差终于结束了,本次出差真是收益良多,不仅品尝了正宗的大闸蟹,同时也是第一次体验了产品的现场实施流程. 明天开始继续学习Linux! ----------------------分割线- ...

  6. 同一台机子上用多个git 账号

    Step 1 - Create a New SSH Key We need to generate a unique SSH key for our second GitHub account. 1 ...

  7. LightOJ1126 Building Twin Towers(DP)

    题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1126 Description Professor Sofdor Al ...

  8. addview的使用

    之前,使用addview(控件1)的时候 之前是需要给控件1添加一个位置设定,比如是设定在右侧 使用了addrule 但是我想到的是,如果是给一个view 的 后面延长,把该控件放在上面呢?

  9. 一个print的简单错误

    原因是python 2.X 可以print 内容 而3.X 取消了这种写法 改成了print(内容)

  10. 单元测试地二蛋 先弄个两个原生模块1个原始的一个jq插件

    放羊测试测完了再测这两个瞎搞的下拉列表组建 看看从单元测试模块化的角度组建会写成啥样 1:ajax请求 简单文本     2:1个页面多个实例     3:复杂展示+自定义点击+自定义处理函数     ...