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

VB.NET Discussion :

Définir un AddHandler dynamique


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Par défaut Définir un AddHandler dynamique
    Bonjour à tous,

    Je voudrait s'il est possible et si oui comment faire pour définir un AddHandler de façon dynamique en VB.Net.

    En fait, j'aimerais ecrire une méthode a qui on passerait en paramètre un objet et un nom de méthode (chaine) et qui fasse le AddHandler Objet.evenement, AddressOf MéthodeDefiniEnParametre

    Merci de vos réponses

  2. #2
    Membre confirmé Avatar de Apocalyps
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Août 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Août 2006
    Messages : 83
    Par défaut
    Bonjour Manu
    J'ai fait mes petits tests, et ce que tu demandes est bien possible.

    Voici une petite fonction permettant de le faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Sub AttachEvent(ByVal target As Object, ByVal eventName As String, ByVal methodOwner As Object, ByVal methodName As String)
            Dim targetType As Type
            Dim targetEventInfo As Reflection.EventInfo
            Dim eventMethod As [Delegate]
     
            targetType = target.GetType
            targetEventInfo = targetType.GetEvent(eventName)
            eventMethod = [Delegate].CreateDelegate(targetEventInfo.EventHandlerType, methodOwner, methodName)
     
            targetEventInfo.AddEventHandler(target, eventMethod)
        End Sub
    target : Objet duquel tu veux attaché un évènement vers la méthode dont tu passe le nom en paramètre

    eventName
    : Nom de l'évènement a attaché (eg : "Click")

    methodOwner : Objet sur lequel la méthode (dont le nom est passé en paramètre) est déclarée

    methodName
    : Nom de la méthode sur lequel l'évènement doit être attaché (eg : "Button1_Click")

    Exemple d'utilisation :
    Dans un projet VB.net (fx 2.0), dans lequel tu as une form "Form1" dans laquelle se trouve un bouton "Button1" : Dans la page code de ta Form1, écrit une méthode comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Sub Bigbadaboom (ByVal sender As System.Object, ByVal e As System.EventArgs)
            MsgBox("Dada !")
        End Sub
    Copie ensuite la fonction "AttachEvent" que je t'ai ecrit plus haut.

    Enfin, appel la fonction AttachEvent quelque part dans ton code (dans l'évènement Load de ta form par exemple) comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AttachEvent(Me.Button1, "Click", Me, "Bigbadaboom")
    Et donc à la fin, d'après mes tests, lorsque tu click sur ton Button1 lors de l'exécution, un message "Dada !" s'affiche.
    En espérant que ça puisse t'aider.

  3. #3
    Membre habitué
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Par défaut
    Salut,

    Ça marche très bien

    Merci pour ta réponse, tu m'as beaucoup aidé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Définir un range dynamiquement
    Par c.piette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2015, 09h14
  2. mod_jk: définir un nombre dynamique de serveurs
    Par FrenchFrogger dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 13/08/2009, 13h51
  3. [XL-2007] Définir des références dynamiques pour les formules internes d'un tableau
    Par SilkyRoad dans le forum Contribuez
    Réponses: 0
    Dernier message: 10/05/2009, 13h05
  4. [VB]Définir un événement à un controle créé dynamiquement
    Par Ooly2001 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/01/2006, 11h15
  5. [vb.net] définir un textbox dynamiquement
    Par arnolem dans le forum Windows Forms
    Réponses: 13
    Dernier message: 05/12/2005, 15h51

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