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 :

[C#] appeler Close() d'un form à partir d'un autre form


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    24
    Points
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 18
    Par défaut [C#] appeler Close() d'un form à partir d'un autre form
    Framework : 1.0
    MDE: 2002
    application windows.
    J'ai dans mon application une fenetre principale qui appel d'autres fenetre.
    Dans chaque fenetre, j'ai un menu quitter.
    Je voudrais à partir des fenetres de l'application, sur le click du menu quitter, fermer la fenetre principale en appelant son méthode close(). Ceci afin de pouvoir mettre du code sur l'évenement Closed() de ma fenetre principale.
    Le hic! c'est que je n'arrive pas à appliquer la méthode Close() sur ma fenetre principale!!! Je ne sais pas récupérer l'objet correspondant.

    Merci

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Points
    7 879
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Par défaut
    Quelquesoit la méthode, la communication entre Forms suit a peu près toujours le même principe
    http://www.developpez.net/forums/viewtopic.php?t=452014

    une reference sur la Form appelante dans la Form appelée

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Points
    621
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Par défaut
    Le principe de fonctionnement de ton application me semble un peu bizarre.

    Normalement, c'est uniquement la fenêtre principale qui permet de quitter l'application en fermant toutes les autres.
    D'une manière générale, un enfant ne ferme pas son parent.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    24
    Points
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 24
    Points : 18
    Par défaut
    D'accord pour le principe mais de mes fenêtres enfants, j'ai un menu quitter pour quitter directement l'application avec Application.Exit().
    A la fermeture de mon application je veux modifier un paramètre de configuration dans le fichier de configuration. Je pense donc le faire sur l'évenement Close() de ma fenêtre de démarrage mais pour cela il faut que je puisse appeler cet événement qui n'est pas déclenché par la méthode Application.exit() que j'appel de mon menu Quitter.

    J'ai résolu le problème de la facon suivante:
    appel du constructeur de la fenêtre enfant depuis la fenêtre principale en passant en paramètre le form parent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GrilleManuelle3 gm3 = new GrilleManuelle3(this);
    gm3.Show();
    Dans la fenêtre enfant:
    Je déclare un formulaire pour recevoir le formulaire parent:
    et je ferme le formulaire parent avant de quitter l'application:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void mnFQuitter_Click(object sender, System.EventArgs e)
    {
    fparent.Close();
    Application.Exit();
    }
    Et cela semble marcher

    édité par neguib pour

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Points
    621
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void mnFQuitter_Click(object sender, System.EventArgs e)
    {
    fparent.Close();
    Application.Exit();
    }
    dans ce code, Application.Exit() est de trop si fparent est la form principale de l'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void mnFQuitter_Click(object sender, System.EventArgs e)
    {
    fparent.Close();
    }

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 09/06/2008, 10h57
  2. Pb d'ouverture d'un form à partir d'un autre form
    Par jeremy_d dans le forum Windows Forms
    Réponses: 9
    Dernier message: 14/05/2008, 13h09
  3. Réponses: 1
    Dernier message: 06/05/2007, 11h43
  4. Réponses: 3
    Dernier message: 02/04/2007, 21h37
  5. Réponses: 4
    Dernier message: 21/04/2006, 23h08

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