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 :

[Conception] Abonnement à un evenement externe?


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut [Conception] Abonnement à un evenement externe?
    Bonjour,

    bon, voilà mon problème :

    J'ai une assembly qui contient un UserControl (Forms), qui sait comment se fermer, mais il ne sait pas quand (j'ai essayé en implementant IDisposable, ou avec la l'evenement disposed mais ca lançe trop tard ce que j'ai à faire, il me faudrait une sorte d'evènement disposing).

    D'un autre côté, j'ai une autre assembly WPF/WinForms, qui embarque mon Control. Mes fenêtres WPF/Winforms savent quand fermer mon Control mais elles ne savent pas comment.

    A priori rien de plus facile, il me suffit d'appeler la méthode de mon Control, qui lui sait comment, au bon moment.

    Mon problème est que si cette méthode n'est pas appelée quand il le faut, ca pose des problèmes, donc je souhaiterais, au moment de l'instanciation de mon Control, obligé en quelque sorte un abonnement de mes fenêtres à la méthode de mon Control.

    J'ai essayé de passer en paramètre du constructeur un EventHandler, mais ca ne compile pas.

    Des idées?

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Ton user control hérite entre autres de Control, qui est IDisposable. Il te faut donc surcharger la méthode protected override Dispose(bool b).

    Ensuite, si tu rajoutes ce user control à une form, le designer va automatiquement l'ajouter à une variable privée nommée "components". Quand la form est "disposée", elle dispose tous les contrôles présents dans "components".

    Ton boulot se limite donc à implémenter IDisposable correctement dans ton Useer Control
    ಠ_ಠ

  3. #3
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Ton boulot se limite donc à implémenter IDisposable correctement dans ton Useer Control
    Ou pas . Si jamais il a besoin d'effectuer des actions (genre sauvegarde des parametres, ou autre, ce n'est pas dans le Dispose qu'il faut faire ça.

    Une solution au problème est d'aller chercher la fenetre qui heberge le UserControl avec la propriété Parent ( et la propriété Parent du parent ) Attention à la récursivité .

    Et pour être sur que tu tombes sur un type Form ou Window le mot clef is est ton ami
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  4. #4
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par dev01 Voir le message
    Ou pas . Si jamais il a besoin d'effectuer des actions (genre sauvegarde des parametres, ou autre, ce n'est pas dans le Dispose qu'il faut faire ça.

    Une solution au problème est d'aller chercher la fenetre qui heberge le UserControl avec la propriété Parent ( et la propriété Parent du parent ) Attention à la récursivité .

    Et pour être sur que tu tombes sur un type Form ou Window le mot clef is est ton ami
    ok merci

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

Discussions similaires

  1. Conception d'une classe externe d'outil
    Par zooffy dans le forum ASP.NET
    Réponses: 11
    Dernier message: 20/05/2009, 09h30
  2. Gestion evenements externe à l'application
    Par atalon1 dans le forum GUI
    Réponses: 11
    Dernier message: 04/01/2009, 21h04
  3. intercepter des evenements externe à mon plugin
    Par windmahmoud dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 05/06/2008, 13h25
  4. [Conception] Classe interne ou externe
    Par storm_2000 dans le forum Langage
    Réponses: 3
    Dernier message: 13/01/2007, 16h05
  5. [Conception] Class interne ou externe ?
    Par TTKiBosse dans le forum Langage
    Réponses: 13
    Dernier message: 10/01/2007, 10h36

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