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

Windows Forms Discussion :

Instanciation de form et événement


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut Instanciation de form et événement
    Bonjour,

    J'ai un petit problème avec un événement.

    J'ai une classe qui instancie un form qu'on abonne à un événement.

    Dans mon appli l'utilisateur peut fermer et réouvrir le form.

    Mais il semblerai qu'a chaque fois il s'abonne au même événement, mais que les anciens abonnements restent.

    C'est à dire qu'après avoir fermé et réouvert 2 fois mon form, lorsque l'événement est déclenché dans un autre form, la méthode rattachée à cet event dans mon form se fait 3 fois de suite.

    Est-ce parce que lorsque je ferme mon form l'abonnement n'est pas supprimé?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ConsultClt = new F_ConsultClt(this);
                            ConsultClt.MdiParent = oMenu;
                            this.MAJTabOrdreClt += new Surveillant.TableHandler(ConsultClt.OnMAJTabOrdre);
                            ConsultClt.Show();
    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Points : 369
    Points
    369
    Par défaut
    Pour te désabonner ça devrait donner un truc comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.MAJTabOrdreClt -=ConsultClt.OnMAJTabOrdre;

  3. #3
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    J'ai mis ta ligne de code dans mon event F_ConsultClt_FormClosed mais cela ne change rien.

    Merci pour ta réponse

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 407
    Points : 3 027
    Points
    3 027
    Par défaut
    Mets l'appel et l'affichage de ton form dans using(), ça pourrait régler le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    using(TonForm form= new TonForm())
    {
        form.ShowDialog();
    }

  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 407
    Points : 3 027
    Points
    3 027
    Par défaut
    arf, non, tu fais un Show() ...

    une solution crado qui m'a sauvé la vie récemment : une variable boolean qui dit si l'évènement a déjà été lié ou pas. Comme ça tu le fais qu'une fois.

  6. #6
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Ok, si je ne trouve rien de moins "crado" je ferais ça

    Merci

    --------

    [EDIT] Milles excuses, la solution de NejNej fonctionne trés bien en fait!
    J'ai bouletté !

    Merci a vous deux .

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

Discussions similaires

  1. Peut-on instancier un form avec un graphe
    Par micniv dans le forum Access
    Réponses: 1
    Dernier message: 16/03/2008, 21h49
  2. Form et évènements
    Par Nzs26 dans le forum Composants VCL
    Réponses: 10
    Dernier message: 12/03/2008, 10h14
  3. Instancier une form depuis une class passer en paramètre
    Par freud dans le forum Windows Forms
    Réponses: 9
    Dernier message: 07/11/2007, 15h26
  4. instancier les formes de l'application 1 seule fois
    Par iam dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/06/2006, 15h27
  5. [C#] Application MDI (instancier les form enfants)
    Par EFCAugure dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/10/2005, 11h30

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