关于(object sender, EventArgs e)
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)的更多相关文章
- C#之winform基础 button1_Click(object sender, EventArgs e)中sender是啥及其用法
镇场诗: 大梦谁觉,水月中建博客.百千磨难,才知世事无常. 今持佛语,技术无量愿学.愿尽所学,铸一良心博客.---------------------------- ...
- 委托与事件代码详解与(Object sender,EventArgs e)详解
委托与事件代码详解 using System;using System.Collections.Generic;using System.Text; namespace @Delegate //自定义 ...
- 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 ...
- C# 函数参数object sender, EventArgs e
object sender:表示触发事件的控件对象EventArgs e:表示事件数据的类的基类 Windows程序有一个事件机制.用于处理用户事件. 在WinForm中我们经常需要给控件添加事件.例 ...
- 浅析C# 中object sender与EventArgs e (转)
一.了解C#中的预定义事件处理机制 在写代码前我们先来熟悉.net框架中和事件有关的类和委托,了解C#中预定义事件的处理. EventArgs是包含事件数据的类的基类,用于传递事件的细节. Ev ...
- WinForm事件中的Object sender和EventArgs e参数
Windows程序有一个事件机制.用于处理用户事件. 在WinForm中我们经常需要给控件添加事件.例如给一个Button按钮添加一个Click点击事件.给TextBox文本框添加一个KeyPress ...
- Visual Studio2013应用笔记---WinForm事件中的Object sender和EventArgs e参数
Windows程序有一个事件机制.用于处理用户事件. 在WinForm中我们经常需要给控件添加事件.例如给一个Button按钮添加一个Click点击事件.给TextBox文本框添加一个KeyPress ...
- object sender ,EventArs e
引用:http://blog.csdn.net/kongbai308416350/article/details/4233786 说的通俗一些,就是: 有一个叫做EventHandler 的家伙,他会 ...
- (object sender,EventArgs e)是什么?
object sender:发出事件的对象 EventArgs e:对象中的数据
随机推荐
- http升https笔记
证书申请的: 1.lets encrypt 国际公益项目发展很快的,不过在国内暂时有些支持度还不够高,如微信安卓版就不认lets encrypt的证书.跳转进去一直处于空白页状态 2.沃通证书 国内 ...
- listView当中有嵌套了有onClickListener的控件时ListView自身的onItemClick无响应的解决方案
Ref:http://www.cnblogs.com/bluestorm/archive/2013/03/24/2979557.html android:descendantFocusability ...
- PAT A 1022. Digital Library (30)【结构体排序检索】
https://www.patest.cn/contests/pat-a-practise/1022 直接模拟, 输入,按id排序,检索 #include <iostream> #incl ...
- [Unity3D]NGUI用Sprite动画和屏幕自适应做游戏开始场景
我们在玩任何一款手游产品时,都是先上来个logo界面,游戏欢迎界面等,这就意味着我们要做一款游戏需要多个场景,场景之间来回切换实现游戏逻辑,unity也不例外,所以从本篇开始将会介绍如何搭建多个场景, ...
- Linux学习笔记(6)-文件I/O
持续一个礼拜的出差终于结束了,本次出差真是收益良多,不仅品尝了正宗的大闸蟹,同时也是第一次体验了产品的现场实施流程. 明天开始继续学习Linux! ----------------------分割线- ...
- 同一台机子上用多个git 账号
Step 1 - Create a New SSH Key We need to generate a unique SSH key for our second GitHub account. 1 ...
- LightOJ1126 Building Twin Towers(DP)
题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1126 Description Professor Sofdor Al ...
- addview的使用
之前,使用addview(控件1)的时候 之前是需要给控件1添加一个位置设定,比如是设定在右侧 使用了addrule 但是我想到的是,如果是给一个view 的 后面延长,把该控件放在上面呢?
- 一个print的简单错误
原因是python 2.X 可以print 内容 而3.X 取消了这种写法 改成了print(内容)
- 单元测试地二蛋 先弄个两个原生模块1个原始的一个jq插件
放羊测试测完了再测这两个瞎搞的下拉列表组建 看看从单元测试模块化的角度组建会写成啥样 1:ajax请求 简单文本 2:1个页面多个实例 3:复杂展示+自定义点击+自定义处理函数 ...