IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

creation d'un évènement


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mai 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 167
    Par défaut creation d'un évènement
    Bonsoir,
    J'ai trop cherché sur le net avant de posté dans ce forum, mais je n'arrive pas toujours à comprendre le code de la création d'un nouveau évènement et gestionnaire d'évènement "EventHandler".


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public event EventHandler monevent ; // pour la déclaration
     
    if (this.monevent!= null)
                {
                    this.monevent(this, null); //quel est le role de cette ligne
     
                }
    this.monevent += new EventHandler(this.Tank_CalcCustomTransform);
    2) et quel est la différence entre un l'ensemble ( "EventHandler" et délégué) et le design pattern ??
    Merci d'avance

  2. #2
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    1) this.monevent(this, null); //quel est le role de cette ligne
    Ca permet de lancer l'évènement. C'est à dire notifier tous ceux qui s'y sont abonnés.

    2) "EventHandler" et délégué
    Un eventHandler est un délégué. Un délégué est une référence vers une fonction.

    ( "EventHandler" et délégué) et le design pattern
    Ca n'a pas de rapport. Voici ce qu'est un design pattern
    [ame]http://fr.wikipedia.org/wiki/Patron_de_conception[/ame]

    un bon article sur les délégués et les events
    http://www.akadia.com/services/dotne...nd_events.html

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mai 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 167
    Par défaut
    Bonjour,
    Merci pour l'article de délégués meziantou.

    Je voudrais savoir es que les commentaires que je l'ai mit devant les lignes de codes suivantes sont juste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public event EventHandler monevent ;
     
    //c'est la déclaration d'un délégué particulier qui est un évènement qui s'appelle monevent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if (this.monevent!= null)   
     
    //pour vérifier si nous avons associe a cet évènement un gestionnaire d'evenmenet
     
                {
                    this.monevent(this, null);
     
                }
     
    // ces 2 ligne de code seront appelé a intérieurs d'une méthode, et l'appelle de cette méthode déclenchera l'évènement monevent , et ça implique l'exécution automatique de la méthode qui a la même signature que le délégué
    "Tank_CalcCustomTransform" 
     
    this.monevent += new EventHandler(this.Tank_CalcCustomTransform);
    Merci d'avance

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public event EventHandler monevent ;
     
    //c'est la déclaration d'un délégué particulier qui est un évènement qui s'appelle monevent
    Non. Tu déclares une évènement dont le gestionnaire sera de type EventHandler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (this.monevent!= null)   
     
    //pour vérifier si nous avons associe a cet évènement un gestionnaire d'evenmenet
     
                {
                    this.monevent(this, null);
     
                }
    Oui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // ces 2 ligne de code seront appelé a intérieurs d'une méthode, et l'appelle de cette méthode déclenchera l'évènement monevent , et ça implique l'exécution automatique de la méthode qui a la même signature que le délégué
    "Tank_CalcCustomTransform" 
     
    this.monevent += new EventHandler(this.Tank_CalcCustomTransform);
    Pas compris. Tu attaches un gestionnaire nommé Tank_CalcCustomTransform sur monevent mais ça ne lance pas l'évènement. Il faut faire le code juste avant.

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mai 2008
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 167
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public class GraphicsObject
    {
       public event EventHandler monevent ;
     
        public bool Render()
            {
             if (this.monevent != null)
               {
                   this.monevent.Invoke(this, null);
               }
     
     
    }
     
    public class Tank : GraphicsObject
        {
     
      public void Initialize()
          {
           this.monevent += new EventHandler(this.Tank_CalcCustomTransform);
          }
     
           public void Tank_CalcCustomTransform(object sender, EventArgs e)
            {
     
            }
    }
    1) Pour déclencher l'évènement monevent il faux faire un appel à la méthode render, qui contient le code de déclenchement d'évènement, après l'appel d'évènement, il va y avoir un appel automatique de la méthode qui gérera l'évènement Tank_CalcCustomTransform

    es ce que ça est vrai ou faut ??

    2) EventHandler est un délégué et un gestionnaire d'évènement ??

    Merci d'avance

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Citation Envoyé par eemii Voir le message

    1) Pour déclencher l'évènement monevent il faux faire un appel à la méthode render, qui contient le code de déclenchement d'évènement, après l'appel d'évènement, il va y avoir un appel automatique de la méthode qui gérera l'évènement Tank_CalcCustomTransform

    es ce que ça est vrai ou faut ??
    Oui dans la classe Tank , mais ton code ne compilera pas car il n'est pas possible d'ajouter un gestionnaire en dehors d'une méthode ou d'un constructeur.

    Citation Envoyé par eemii Voir le message
    2) EventHandler est un délégué et un gestionnaire d'évènement ??

    Merci d'avance
    EventHandler est un délégué, c'est à dire un prototype de méthode (ce que la méthode doit retourner et prendre en paramètre). Le gestionnaire correspond plutôt à une "instance" du délégué : c'est la méthode qui va être exécutée lors de ton event.

Discussions similaires

  1. creation dynamique de boutons, affectation d'évènements
    Par arcade_stg_master dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/04/2012, 20h23
  2. Creation d'un événement Worksheet_AfterCopy
    Par fama78 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2011, 16h39
  3. Creation dynamique TADODataSet et association d'évènements
    Par yamino dans le forum Bases de données
    Réponses: 5
    Dernier message: 02/10/2007, 17h04
  4. Creation d'évènement dans un TEDIT
    Par Ludo_360 dans le forum Delphi
    Réponses: 49
    Dernier message: 31/05/2007, 17h56
  5. Réponses: 19
    Dernier message: 21/03/2006, 19h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo