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 :

[VB] écoute d’événements dans un objet parent


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 6
    Points
    6
    Par défaut [VB] écoute d’événements dans un objet parent
    Bonjour,

    j'ai un soucis avec ma gestion d’événement et j'aimerais avoir un petit coup de pouce pour comprendre mon erreur.

    j'ai un objet1 qui contient plusieurs objets crachant des events (le père récupère bien les events)
    puis j'ai un autre object2 qui hérite d'object1 avec le quelle je voudrais écouter les événements contenu dans l'objet1, puis lancer une fonction de traitement commun contenue dans le père puis qu'il fasse son traitement spécifique.

    Merci.

    Code VB : 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
     
    '''Classe mère
    Public Class objet1
    Protected WithEvents PanneauModuleRechercheBeneficiaire As PanneauModuleRechercheBeneficiaire
     
    Public Overridable Sub initialiser()
    PanneauModuleRechercheBeneficiaire = New PanneauModuleRechercheBeneficiaire()
    AddHandler PanneauModuleRechercheBeneficiaire.PanneauModuleRechercheBeneficiaireEvent, AddressOf PanneauModuleRechercheBeneficiaire_PanneauModuleRechercheBeneficiaireEvent
    End Sub
     
    Protected Overridable Sub PanneauModuleRechercheBeneficiaire_PanneauModuleRechercheBeneficiaireEvent(sender As Object, e As PanneauModuleRechercheBeneficiaireEventArgs)
    '''ACTION de la classe mère tronc commun
    end sub
    End Class
     
    Public Class objet2
    Inherits objet1
     
    Public Overridable Sub initialiser()
    mybase.initialiser()
    End Sub
     
     
    Protected Overrides Sub PanneauModuleRechercheBeneficiaire_PanneauModuleRechercheBeneficiaireEvent(sender As Object, e As PanneauModuleRechercheBeneficiaireEventArgs)
    mybase.PanneauModuleRechercheBeneficiaire_PanneauModuleRechercheBeneficiaireEvent(sender , e)
    '''Traitement spécifique
    End sub
    End Class

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Bonjour,

    Pourrais-tu préciser l'erreur que tu obtiens?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Malheureusement il n'y a pas d'erreur c'est juste que mes events ne son pas Catcher par les enfant (Obj2)
    Par contre en commentant les fonctions fils qui devraient s’exécuter lorsqu'un event est lancer et en mettant un MsgBox sur la fonction père le message box s'affiche bien.
    (comme ci-dessous)

    (J'ai également essayé en mettant mon AddHandler au niveau du fils rien non plus )
    si ça peut jouer l'obj1 hérite aussi de winForm

    Code VB : 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
     
    '''Classe mère
    Public Class objet1
    Protected WithEvents PanneauModuleRechercheBeneficiaire As PanneauModuleRechercheBeneficiaire
     
    Public Overridable Sub initialiser()
    PanneauModuleRechercheBeneficiaire = New PanneauModuleRechercheBeneficiaire()
    AddHandler PanneauModuleRechercheBeneficiaire.PanneauModuleRechercheBeneficiaireEvent, AddressOf PanneauModuleRechercheBeneficiaire_PanneauModuleRechercheBeneficiaireEvent
    End Sub
     
    Protected Overridable Sub PanneauModuleRechercheBeneficiaire_PanneauModuleRechercheBeneficiaireEvent(sender As Object, e As PanneauModuleRechercheBeneficiaireEventArgs)
    '''ACTION de la classe mère tronc commun
    MsgBox("test")
    end sub
    End Class
     
    Public Class objet2
    Inherits objet1
     
    Public Overridable Sub initialiser()
    mybase.initialiser()
    End Sub
     
     
    '''Protected Overrides Sub PanneauModuleRechercheBeneficiaire_PanneauModuleRechercheBeneficiaireEvent(sender As Object, e As PanneauModuleRechercheBeneficiaireEventArgs)
    '''mybase.PanneauModuleRechercheBeneficiaire_PanneauModuleRechercheBeneficiaireEvent(sender , e)
    '''Traitement spécifique
    '''End sub
    End Class

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    J'ai trouvé une solution alternative à mon problème mais qui n'est pas super propre je récupère l'event dans le parent et relance un event avec le parent pour le récupérer avec l'enfant.
    Si quelqu'un voit une solution plus propre je suis à l'écoute d'une autre piste.

    Merci.

  5. #5
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Voici un élément de réponse (MSDN) :

    Événements et héritage

    Lorsque vous créez un composant général qui peut être dérivé, le problème apparent survient parfois avec les événements. Dans la mesure où les événements peuvent être appelés uniquement à partir de la classe qui les a déclarés, les classes dérivées ne peuvent pas appeler directement les événements déclarés dans la classe de base. Bien que cela soit parfois le but recherché, il est souvent souhaitable d'accorder à la classe dérivée la liberté d'appeler l'événement, le plus souvent, en créant une méthode d'appel protégée pour l'événement. Les classes dérivées, en appelant cette méthode d'appel, peuvent appeler l'événement. Pour obtenir une souplesse encore plus grande, la méthode d'appel est souvent déclarée comme virtuelle, ce qui permet à la classe dérivée de la substituer. La classe dérivée peut ainsi intercepter les événements appelés par la classe de base, éventuellement en les traitant à sa façon.

    Dans l'exemple précédent, cela a été fait avec la méthode OnChanged. Une classe dérivée pourrait appeler ou se substituer à cette méthode si cela était nécessaire.
    Voici le lien

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/09/2014, 19h06
  2. Réponses: 2
    Dernier message: 09/02/2012, 00h09
  3. [MooTools] Accéder à l'objet parent dans un Event
    Par Fused dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 07/02/2011, 14h00
  4. [CS3] Supprimer un objet crée dans une classe parent
    Par renaud26 dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 28/10/2010, 00h15
  5. TWebBrowser créé dans un objet.
    Par Speed41 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/11/2003, 10h34

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