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 :

Form1<-->Form2 erreur à la fermeture de l'appli


Sujet :

C#

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut Form1<-->Form2 erreur à la fermeture de l'appli
    Bonjour, je sais il y à beaucoup d'exemples sur le Net mais voilà j'ai un problème lors de la fermeture de mon application ,elle ne se ferme pas correctement, je ne trouve pas pourquoi.
    Merci pour votre aide.
    Dans ma Form1 avec un bouton j'affiche Form2 comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            private void Button1_Click(object sender, EventArgs e)
            {
                Form Fr2 = new Fr2();
                Fr2.Show();
                this.Hide();
            }
    Dans Form2 pour fermer Form2 et ré-afficher Form1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            private void button1_Click(object sender, EventArgs e)
            { 
               Form Form1 = new Form1();
               Form1.Show();
               this.Dispose();
            }

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Par défaut
    pourquoi Form2 recrée un Form1?

    de plus ta methode dans Form2 ne va la fermer parceque tu as mis un Dispose.

    Pour qu'elle se ferme, tu peux editer son constructeur de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      public Form1()
            {
                InitializeComponent();
                this.CancelButton = button1; //Fait que quand tu cliquera sur bouton1 c'est comme si tu cliquais sur la croix rouge.
                this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); //Tu demande à lancer la méthode en dessous quand elle se ferme
            }
     
    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                  if(this.ParentForm != null) //Voir la Methode Show( dans le code un peu plus bas
                       this.ParentForm.Show();
            }
    sans oublier de changer Show pour indiquer à Form2 que Form1 est sa maman:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void Button1_Click(object sender, EventArgs e)
            {
                Form Fr2 = new Fr2();
                Fr2.Show(this);
                this.Hide();
            }

  3. #3
    Membre très actif
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 457
    Par défaut
    Lorsque tu fais appelle au form2 il faut
    private void button1_Click(object sender, EventArgs e)
    {
    Form2 f2 = new Form2();
    this.Hide();
    f2.ShowDialog();
    this.Show();
    }
    et lorsque tu veux fermer form2 l'application va aller au instruction this.show() et tout marche normalement ,

    il ne faut pas creer un nouveau instance de form1 dans form2,

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Bonjour, merci pour vos réponses,
    je comprends bien qu'il ne faut pas recréer Form1 dans Form2 mais comment faire pour ré afficher Form1 à partir de Form2?

  5. #5
    Membre très actif
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    457
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 457
    Par défaut
    Salut,

    fait test a mon code dans un petite example windows application,
    lorsque tu ferme le form2 , automatiquement le programme sera dans l'instruction this.show();

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Effectivement ça fonctionne, je n'avais pas compris les choses en ce sens, il suffisait de mettre ce code dans l'événement de mon bouton fermer de la Form2 et récupérer le Show de From1.
    merci de votre aide, bonne journée

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

Discussions similaires

  1. [VB.NET]utiliser un composant situé sur form1 sur le form2
    Par Sytchev3 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/05/2006, 18h16
  2. Message d'erreur à la fermeture d'une page web
    Par WELCOMSMAIL dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 26/04/2006, 17h12
  3. [fclose] erreur de fermeture (seg fault)
    Par Goundy dans le forum C
    Réponses: 17
    Dernier message: 06/04/2006, 13h16
  4. Erreur en fermeture ? D'où cela peut venir
    Par BXDSPORT dans le forum Langage
    Réponses: 5
    Dernier message: 21/10/2005, 22h26
  5. gestion d'erreur et fermeture recordset
    Par yorra dans le forum Access
    Réponses: 4
    Dernier message: 14/11/2004, 11h38

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