Des chercheurs danois et suédois en sciences informatiques et systèmes autonomes ont décortiqué la sécurité...
Nvidia se prépare à livrer la plate-forme serveur HGX-2 qui sera capable d'exploiter la puissance de 16 GPU Tesla V100...
L'EMD, une école de commerce située à Marseille ouvre à la prochaine rentrée l'école du numérique...
EventHandler
et la classe de base EventArgs
.click
d'un
bouton pour permettre à votre application de réagir lorsque l'utilisateur clique sur le bouton.Load
.Form
déclenche l'événement Load
.InitializeComponent
,
dans le fichier Form1.Designer.cs
de votre projet. Elle ressemble à ceci :EventHandler
, le code suivant représente le stub de méthode :+=
) pour attacher votre gestionnaire d'événements à l'événement.
Dans l'exemple suivant, nous allons supposer qu'un objet nommé publisher a un événement nommé RaiseCustomEvent
.
Notez que la classe d'abonné nécessite une référence à la classe d'éditeur pour s'abonner à ses événements.new
:+=
)
pour attacher une méthode anonyme à l'événement. Dans l'exemple suivant, nous supposons qu'un objet nommé publisher
a un événement
nommé RaiseCustomEvent
, et qu'une classe CustomEventArgs
a également été définie pour contenir des informations
d'événements spécialisés. Notez que la classe d'abonné nécessite une référence à publisher
pour s'abonner à ses événements.-=
) pour vous désabonner d'un événement :null
.EventHandler
, qui est défini comme suit :EventHandler‹TEventArgs›
.
Les exemples suivants montrent comment utiliser les deux versions.
EventHandler
, comme dans l'exemple suivant.EventHandler‹TEventArgs›
).
Déclarez un délégué dans votre classe de publication. Donnez-lui un nom qui se termine par EventHandler
.
Le deuxième paramètre spécifie votre type EventArgs
personnalisé.EventArgs
personnalisée, votre type d'événement sera le délégué EventHandler
non générique.
Il est inutile de déclarer le délégué, car il l'est déjà dans l'espace de noms System
inclus au moment où vous créez votre projet C#.
Ajoutez le code suivant à votre classe de serveur de publication.EventHandler
et que vous avez une classe personnalisée dérivée de EventArgs
,
déclarez votre événement à l'intérieur de votre classe de publication et utilisez votre délégué de l'étape 2 comme type.EventHandler‹CustomEventArgs›
,
en insérant le nom de votre propre classe entre les crochets.EventArgs
personnalisée et de EventHandler‹TEventArgs›
comme type d'événement.add
et remove
.
Normalement, ces éléments sont fournis par le compilateur, mais dans le cas en question le compilateur ne peut pas les fournir.OnDraw
qu'il recevront en effectuant un cast de la référence
de la forme en IShape
ou IDrawingObject
.accessor-declarations
consiste à exposer un grand nombre d'événements sans allouer de champ à chaque événement,
mais en utilisant à la place un dictionnaire pour stocker les instances d'événements. Cette méthode n'est utile qu'en présence d'un grand
nombre d'événements dont la plupart ne seront pas implémentés.add
et remove
. Dans la plupart des cas, vous n'avez pas à fournir d'accesseurs d'événement personnalisés.
Quand aucun accesseur d'événement personnalisé n'est fourni dans votre code, le compilateur les ajoute automatiquement.
Toutefois, vous devez parfois fournir un comportement personnalisé. Ce genre de cas est illustré dans la rubrique Guide pratique pour implémenter des événements d'interface.add
et remove
. Même si vous pouvez remplacer le code à l'intérieur des accesseurs,
nous vous recommandons de verrouiller l'événement avant d'ajouter ou de supprimer une nouvelle méthode de gestionnaire d'événements.