77 votes

.NET Events - Que sont les objets expéditeur et EventArgs e?

Que signifient / font référence l'expéditeur et eventArgs? Comment puis-je les utiliser (pour le scénario ci-dessous)?

Scénario:

J'essaie de créer un contrôle personnalisé avec une fonction de suppression et je veux pouvoir supprimer le contrôle sur lequel vous avez cliqué sur une page contenant plusieurs des mêmes contrôles personnalisés.

85voto

Noon Silk Points 30396

L'expéditeur est le contrôle pour lequel l'action est destinée (disons OnClick, c'est le bouton).

Les EventArgs sont des arguments que l'implémenteur de cet événement peut trouver utiles. Avec OnClick, il ne contient rien de bon, mais dans certains événements, comme dans un GridView 'SelectedIndexChanged', il contiendra le nouvel index, ou quelques autres données utiles.

Ce que Chris dit, c'est que vous pouvez faire ceci:

 protected void btSomeButton_Click (object sender, EventArgs ea){
   Button btnSomeButton = sender as Button;
   btnSomeButton.Text = "I was clicked!";
}
 

21voto

Matthew Scharley Points 43262

sender fait référence à l'objet qui a appelé l'événement qui a déclenché le gestionnaire d'événements. Ceci est utile si vous avez plusieurs objets à l'aide de la même gestionnaire d'événements.

EventArgs est quelque chose d'un mannequin de la classe de base. Dans et de lui-même, il est plus ou moins inutile, mais si vous en tirer, vous pouvez ajouter toutes les données dont vous avez besoin pour passer à vos gestionnaires d'événements.

Lorsque vous mettez en œuvre vos propres événements devez utiliser un EventHandler ou EventHandler<T> que leur type. Cela garantit que vous aurez exactement ces deux paramètres pour tous vos événements (ce qui est une bonne chose).

8voto

Chris Points 13472

Monter manuellement l’expéditeur vers le type de votre contrôle personnalisé et puis l’utiliser pour supprimer ou désactiver etc. Par exemple, quelque chose comme ceci :

Le « sender » est simplement l’objet qui a été effectué (par exemple cliqué).

L’événement args est une sous-classe des contrôles plus complexes, par exemple un treeview, afin que vous pouvez en savoir plus des détails sur l’événement, par exemple exactement où ils ont cliqué.

5voto

<ol> <li><p><strong>« sender » est appelé objet qui a une action à exécuter sur un contrôle</strong></p></li> <li><p><strong>« événement » son avoir quelques informations sur le contrôle auquel sont comportement et identité effectuer par une volonté d’action user.when générer par survenant pour événement ajoutez-le à maintenir dans le tableau est appelé événement SGA</strong></p></li> </ol>

4voto

John Saunders Points 118808

Pour info, et ne sont pas spécifiques à ASP.NET ou en c#. Consultez événements (Guide de programmation c#) et des événements dans Visual Basic.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X