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 :

[événements] passer des événements en paramètre


Sujet :

C#

  1. #1
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut [événements] passer des événements en paramètre
    Bonjour,

    j'ai une classe qui doit réagir à un certains nombre d'événements d'un certain type. J'aimerais que l'utilisateur de la classe puisse ajouter lui même ces événements.

    Je pensais à une classe comme çà :
    Code C# : 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
    28
    29
     
        public class Class1
        {
           //liste des événements auquel la classe doit régir
            private List<EventHandler> _Events = new List<EventHandler>();
     
            public Class1(EventHandler e)
            {
                //au moins un événement dans _Events.
                _Events.Add(e);
            }
     
           //inscrit "Method" pour chaque événement
            public void ManageEvents()
            {
                foreach (EventHandler e in _Events)
                    e += new EventHandler(Method);
            }
     
           //traite les événements
            public void Method(object sender, EventArgs e)
            {
            }
     
            public List<EventHandler> Events
            {
                get { return _Events; }
            }
        }
    Mais je rencontre 2 problèmes :

    - Le premier à mon avis est insolvable : l'utilisateur ne peux ajouter que des événements qu'il à lui même définit. On ne pourra pas écrire :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maClasse.Events.add(button1.Click). Je me trompe ?

    -
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    e += new EventHandler(Method);
    produit une erreur car e est en lecture seule. Savez-vous comment résoudre ce problème ?

    merci d'avance,

    Mathmax

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Salut, normalement ce Thread peut t'aider :


    [Résolu] [VB.NET] enlever un evenement sur une checkbox

  3. #3
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113

  4. #4
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Merci.
    Je ne suis pas sûr que ces Threads correspondent à ce que je veux faire.
    Pourrais-tu m'expliquer en gros ce qu'est la réflexion ?
    Je ne comprends en particulier pas trop l'intérêt de ce code. Celà permet de s'abonner à un événement dont on connais le nom, l'objet qui l'encapsule et sa signature... ok, mais quand on connais-tout ça on connais en général aussi le type de l'événement, non ?

    Sinon, j'ai résolu mon second problème en utilisant un for plutôt qu'un foreach (ce qui permet d'avoir e en ecriture et non seulement en lecture).

    Par contre pour le premier problème, as-tu une solution ?

Discussions similaires

  1. [C#]Remonter des événements dans des classes imbriquées
    Par Kcirtap dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/12/2013, 12h43
  2. Réponses: 0
    Dernier message: 31/03/2009, 04h18
  3. Passer des objets en paramètre
    Par The eye dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 04/01/2008, 16h07
  4. Réponses: 13
    Dernier message: 09/11/2007, 09h15

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