tutorial example eventos evento event custom crear and .net events event-handling

example - .NET Events-¿Qué son Object Sender y EventArgs e?



eventhandler c# tutorial (5)

  1. ''remitente'' se llama objeto que tiene alguna acción realizar en algún control

  2. ''evento'' es tener cierta información sobre el control que tiene algún comportamiento e identidad por parte de algún usuario. Cuando la acción se generará al ocurrir para el evento agregar, mantener dentro de la matriz se llama evento agrs.

¿A qué se refieren los remitentes y eventArgs? ¿Cómo puedo hacer uso de ellos (para el escenario a continuación)?

Guión:

Intento crear un control personalizado con una función de eliminación y quiero poder eliminar el control al que se hizo clic en una página que contiene muchos del mismo control personalizado.


Eche manualmente el remitente al tipo de control personalizado y luego úselo para eliminar o deshabilitar, etc. Por ejemplo, algo como esto:

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

El ''emisor'' es solo el objeto que se activó (por ejemplo, hizo clic).

El evento args está subclasificado para controles más complejos, por ejemplo, una vista en árbol, para que pueda conocer más detalles sobre el evento, por ejemplo, dónde hicieron clic exactamente.


El remitente es el control para el que se realiza la acción (por ejemplo, OnClick, es el botón).

Los EventArgs son argumentos que el implementador de este evento puede encontrarle útil. Con OnClick no contiene nada bueno, pero en algunos eventos, como por ejemplo en un GridView ''SelectedIndexChanged'', contendrá el nuevo índice u otros datos útiles.

Lo que Chris está diciendo es que puedes hacer esto:

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



sender hace referencia al objeto que invocó el evento que activó el controlador de eventos. Esto es útil si tiene muchos objetos que usan el mismo controlador de eventos.

EventArgs es algo así como una clase base ficticia. En sí mismo es más o menos inútil, pero si se deriva de él, puede agregar los datos que necesita para pasar a los controladores de eventos.

Cuando implemente sus propios eventos, use un EventHandler o EventHandler<T> como su tipo. Esto garantiza que tendrá exactamente estos dos parámetros para todos sus eventos (lo cual es bueno).