标题:求教一个很简单的问题
只看楼主
鑫森淼焱垚
Rank: 1
等 级:新手上路
帖 子:60
专家分:8
注 册:2010-3-24
结帖率:92.86%
已结贴  问题点数:20 回复次数:4 
求教一个很简单的问题
C#的每个控件的事件定义后面都有(object sender, EventArgs e),我想知道这两个参数有什么用啊?都是干什么的?编程时怎么更好的利用这两个参数,请高手指点迷津
搜索更多相关主题的帖子: 干什么 
2010-06-22 21:26
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:15 
这个C# Windows编程的事件机制。
object代表发生该事件的控件名称。为什么要是object呢?因为所有的控件都是从object继承而来,所以,通过强制类型转换,我们就可以获取到控件。
EventArgs是Windows控件发生控件的一些附加事件。
举个例子来说:
有一个buttonDemo(按钮控件),它的一个单击事件处理就可以是这个的。

程序代码:
void buttonDemo_Click( object sender, EventArgs e)
{
    if ( sender is Button)
    {
        /// 获取Button控件
        Button btn = (sender as Button);
    }

    /// EventArgs是Windows编程事件驱动消息的基类
    /// EventHandler委托------( object, EventArgs), 所有的事件消息都是EventArgs的子类
    /// 一些特殊的事件处理,可以通过e来获取到触发事件的一些特殊的属性和方法...
}


[ 本帖最后由 zhoufeng1988 于 2010-6-23 09:00 编辑 ]
2010-06-23 08:58
zhenxiaoyan
Rank: 2
等 级:论坛游民
帖 子:22
专家分:40
注 册:2009-8-24
得分:0 
同意上面的说法
2010-06-23 09:02
hainandgm
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:111
专家分:475
注 册:2007-6-21
得分:5 
其实二者组合的动作是被windows捕获,通过windows消息机制发送给应用程序,应用程序从自己的消息队列中不断读取消息,寻找消息对应的处理方式,也就是对应的事件处理函数.
sender:事件对象,其实传递的是对象的引用,一般不能直接使用sender,要显式类型转换来使用.
e:事件数据的类的基类,包含事件对象的事件数据

这是我的理解,也许不够深刻,你可以从各方面理解得更全面
2010-06-23 09:05
鑫森淼焱垚
Rank: 1
等 级:新手上路
帖 子:60
专家分:8
注 册:2010-3-24
得分:0 
回复 2楼 zhoufeng1988
谢谢
2010-06-23 15:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-310973-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.282773 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved