c#按钮事件中的sender,和e有啥用,见别人用过,不过不是很理解

privatevoidDigitBtn_Click(objectsender,RoutedEventArgse)... private void DigitBtn_Click(object sender, RoutedEventArgs e) 展开
 我来答
巫马秋梵昶7O
推荐于2017-11-26 · TA获得超过165个赞
知道小有建树答主
回答量:362
采纳率:0%
帮助的人:199万
展开全部
sender是引发这个事件的object,就是你点击的按钮,你把它转换成button类型,就能直接操作那个按钮了。e是事件本身,具体请在msdn中查找那个事件的解释。在click事件中用处不大,在mousemove这些事件中能包含坐标等信息
530241314
2018-09-24 · TA获得超过483个赞
知道小有建树答主
回答量:257
采纳率:33%
帮助的人:30.9万
展开全部

答案:

纠正一下最佳答案的细节sender并不是引发这个事件的object。而是事件的路由过程中,最近一个经过的对象。

解释:

wpf中,事件是会被路由转发的。在这个过程中,事件会经过一系列的控件。sender中保存的是此事件上一个经过的对象。

如果要得到引发这个事件的控件,应该使用e.OriginalSource或者e.Source。这两个的区别这里不讲。

如果处理函数是在按钮的Click属性中注册的。那么按按钮,sender中存的是按钮的引用。这没错

但是如果按的按钮包含在一个Grid中。然后你在Grid中注册事件处理函数:

grid.AddEventHandler(Button.ClickEvent,new RoutedEventHandle(Func))

//grid是Grid的实例Func是用来处理事件的函数

那么你在Func函数中得到的sender则是grid对象。

对于那个e,有用的主要就是e.OriginalSource,e.Source和e.Handled这几个属性了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
申江渔夫
2014-07-02 · TA获得超过895个赞
知道小有建树答主
回答量:1479
采纳率:0%
帮助的人:688万
展开全部
object sender是事件源对象。
RoutedEventArgs e是个事件参数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式