.NET事件 – 什么是对象发件人&EventArgs e?

sender和eventArgs是指什么? 我如何使用它们(对于下面的场景)?

场景:

我想用一个删除函数来构build一个自定义控件,我希望能够删除包含许多相同的自定义控件的页面上单击的控件。

发件人是操作的控件(比如OnClick,它是button)。

EventArgs是这个事件的实现者可能认为有用的参数。 使用OnClick它没有什么好处,但是在一些事件中,比如说在GridView的SelectedIndexChanged中,它将包含新的索引或其他一些有用的数据。

克里斯说的是你可以这样做:

protected void someButton_Click (object sender, EventArgs ea) { Button someButton = sender as Button; if(someButton != null) { someButton.Text = "I was clicked!"; } } 

sender引用调用引发事件处理程序的事件的对象。 如果有许多对象使用相同的事件处理程序,这非常有用。

EventArgs是一个虚拟的基类。 本身或多或less是无用的,但是如果你从中派生出来的话,你可以添加任何你需要传递给事件处理程序的数据。

当你实现自己的事件时,使用EventHandlerEventHandler<T>作为它们的types。 这保证你将有所有你的事件这两个参数(这是一件好事)。

手动将发件人转换为您的自定义控件的types,然后使用它来删除或禁用等。例如,如下所示:

 private void myCustomControl_Click(object sender, EventArgs e) { ((MyCustomControl)sender).DoWhatever(); } 

“发件人”只是被操作的对象(如点击)。

事件参数被分类为更复杂的控件,例如树形视图,以便您可以了解有关事件的更多细节,例如确切地点击它们的位置。

  1. “发件人”被称为对某些控件执行某些操作的对象

  2. '事件'它有一些有关控制的信息,有一些行为和身份由某个用户执行。当事件发生时产生的事件添加它保持在数组中被称为事件agrs

仅供参考, sendere并不特定于ASP.NET或C#。 请参阅事件(C#编程指南)和Visual Basic中的事件 。