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

Framework .NET Discussion :

[Net 2.0] Ajouter des evénements à un descendant de la classe Component


Sujet :

Framework .NET

  1. #1
    Nouveau membre du Club
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Points : 25
    Points
    25
    Par défaut [Net 2.0] Ajouter des evénements à un descendant de la classe Component
    Bonjour à tous !

    Je cherche comment ajouter des evénements à un descendant de la classe Component.
    Pour bien expliquer les choses : je suis en train de créer un contrôle perso, mais je n'ai pas besoin de tous ce qui est déclaré dans la classe Control, loin de là. Du coup, j'aimerais plutôt faire descendre mes contrôle de la classe Component, mais à ce moment, je n'ai même pas d'événement Paint. Ajouter des propriétés est très simple, ajouter des événements perso également, mais ajouter une gestion de certains événements systèmes, c'est autre chose !
    En gros, il faudrait que ma classe, descendante de Component, puisse gérer les événements suivants :
    • Paint
    • MouseClick
    • MouseEnter
    • MouseLeave
    Je ne vois absolument pas comment faire... J'ai utilisé Reflector pour regarder le code de la classe Control (qui fait 15 000 lignes ) afin de voir comment ces événements étaient gérés, mais c'est pas très probant. En gros, pour l'événement Paint, on peut faire ressortir ce code (en C#) :
    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
    private static readonly object EventPaint = new object();
     
        public event PaintEventHandler Paint
        {         
        add         {             base.Events.AddHandler(EventPaint, value); }
        remove         {             base.Events.RemoveHandler(EventPaint, value); }
    }
    
    [EditorBrowsable(EditorBrowsableState.Advanced)]
    protected virtual void OnPaint(PaintEventArgs e)
    {
        PaintEventHandler handler = (PaintEventHandler) base.Events[EventPaint];
            
        if (handler != null)         {             handler(this, e); }
    }
    
    [EditorBrowsable(EditorBrowsableState.Advanced)]
    protected void RaisePaintEvent(object key, PaintEventArgs e)
    {
        PaintEventHandler handler = (PaintEventHandler) base.Events[EventPaint];
            
        if (handler != null)         {             handler(this, e); }
    }
    Ça m'aide, mais sans plus... La variable EventPaint, qui à l'air à l'origine de tout, n'est qu'un objet vide... Je ne comprends pas...

    Je cherche une solution en C# ou en VB.Net, je n'ai pas de contrainte de langage (même si je suis plus habitué au VB ! )

    Merci d'avance à tous ceux qui auraient une piste !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Le code que tu as trouvé dans la classe Control c'est simplement un moyen de gérer manuellement les évènements, histoire de gagner de l'espace mémoire je crois, tu as un début d'explication ici. Donc ton EventPaint c'est simplement une clé qui sert à retrouver des delegate dans une hashtable. Il faudrait que tu trouves ou et comment sont appelés les délégués correspondant à cette clé (donc ou sont appelées les méthodes OnPaint/RaisePaintEvent)...

Discussions similaires

  1. Ajouter des données avec .Net RIA Services
    Par Invité dans le forum Silverlight
    Réponses: 10
    Dernier message: 21/09/2009, 09h16
  2. Réponses: 4
    Dernier message: 05/04/2007, 16h07
  3. [vb.net 2005] Ajouter des controles
    Par PoZZyX dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/06/2006, 00h50
  4. [vb.net][ressources] ajouter des fichiers ressources
    Par graphicsxp dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/02/2006, 13h37

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