Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

EventHandler, délégué

Représente la méthode qui gérera un événement qui n'a aucune donnée d'événement.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public delegate void EventHandler(
	Object sender,
	EventArgs e
)

Paramètres

sender
Type : System.Object
Source de l'événement.
e
Type : System.EventArgs
Objet qui ne contient aucune donnée d'événement.

Le modèle d'événement dans le .NET Framework est fondé sur la présence d'un délégué d'événement qui connecte un événement avec son gestionnaire. Pour déclencher un événement, deux éléments sont nécessaires :

  • Délégué qui identifie la méthode qui fournit la réponse à l'événement.

  • Éventuellement, une classe contenant les données d'événement, si l'événement fournit des données.

Le délégué est un type qui définit une signature, c'est-à-dire le type de valeur de retour et les types de listes de paramètres d'une méthode. Vous pouvez utiliser le type délégué pour déclarer une variable pouvant faire référence à toute méthode avec la même signature que le délégué.

La signature standard d'un délégué de gestionnaire d'événements définit une méthode qui ne retourne pas de valeur. Le premier paramètre de cette méthode est de type Object et fait référence à l'instance qui déclenche l'événement. Son deuxième paramètre est dérivé du type EventArgs et contient les données d'événement. Si l'événement ne génère pas de données d'événement, le deuxième paramètre est simplement la valeur du champ d'EventArgs.Empty. Sinon, le deuxième paramètre est un type dérivé d'EventArgs et fournit tous les champs ou propriétés nécessaires pour contenir les données d'événement.

Le délégué d'EventHandler est un délégué prédéfinie qui représente spécifiquement une méthode de gestionnaire d'événements pour un événement qui ne génère pas de données. Si votre événement génère des données, vous devez utiliser la classe déléguée générique de EventHandler<TEventArgs>.

Pour associer l'événement à la méthode qui gérera l'événement, ajoutez une instance du délégué à l'événement. Le gestionnaire d'événements est appelé chaque fois qu'un événement se produit, sauf si vous supprimez le délégué.

Pour plus d'informations sur les délégués de gestionnaires d'événements, consultez Gestion et déclenchement d'événements.

L'exemple suivant montre un événement nommé ThresholdReached qui est associé à un délégué d'EventHandler. La méthode assignée au délégué d'EventHandler est appelée dans la méthode OnThresholdReached.


using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Counter c = new Counter(new Random().Next(10));
            c.ThresholdReached += c_ThresholdReached;

            Console.WriteLine("press 'a' key to increase total");
            while (Console.ReadKey(true).KeyChar == 'a')
            {
                Console.WriteLine("adding one");
                c.Add(1);
            }
        }

        static void c_ThresholdReached(object sender, ThresholdReachedEventArgs e)
        {
            Console.WriteLine("The threshold of {0} was reached at {1}.", e.Threshold,  e.TimeReached);
            Environment.Exit(0);
        }
    }

    class Counter
    {
        private int threshold;
        private int total;

        public Counter(int passedThreshold)
        {
            threshold = passedThreshold;
        }

        public void Add(int x)
        {
            total += x;
            if (total >= threshold)
            {
                ThresholdReachedEventArgs args = new ThresholdReachedEventArgs();
                args.Threshold = threshold;
                args.TimeReached = DateTime.Now;
                OnThresholdReached(args);
            }
        }

        protected virtual void OnThresholdReached(ThresholdReachedEventArgs e)
        {
            EventHandler<ThresholdReachedEventArgs> handler = ThresholdReached;
            if (handler != null)
            {
                handler(this, e);
            }
        }

        public event EventHandler<ThresholdReachedEventArgs> ThresholdReached;
    }

    public class ThresholdReachedEventArgs : EventArgs
    {
        public int Threshold { get; set; }
        public DateTime TimeReached { get; set; }
    }
}


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft