Fermeture d'un form et l'ouverture d'une autre [Résolu]

bounasri 3 Messages postés vendredi 17 décembre 2010Date d'inscription 3 avril 2011 Dernière intervention - 28 nov. 2010 à 13:51 - Dernière réponse : theflayer 125 Messages postés dimanche 28 février 2010Date d'inscription 21 juin 2015 Dernière intervention
- 29 nov. 2010 à 21:19
slt, je suis un etudiant, je suis débutant en c#. svp je je veut un code qui permet de fermeture d'un form et l'ouverture d'une autre avec c#. merci 1000 fois d'avance.
Afficher la suite 

5 réponses

Répondre au sujet
theflayer 125 Messages postés dimanche 28 février 2010Date d'inscription 21 juin 2015 Dernière intervention - 28 nov. 2010 à 22:05
+3
Utile
Salut , en espérant que avoir compris ton problème. (Pour une fois que je peux aider :p)
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            f.FormClosing += new FormClosingEventHandler(f_FormClosing);
            this.Hide();
            f.Show();
        }
        private void f_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.Close();
        }

J'ai vu ce problème plusieurs fois en cherchant pour moi même sur le fofo.
http://www.csharpfr.com/forum/sujet-FERMER-FORM1-APRES-OUVERTURE-FORM2_796544.aspx

Voilou à bientôt.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de theflayer
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 29 nov. 2010 à 11:53
+3
Utile
Ah oui, au temps pour moi. J'avais mal lu. En fait, je croyais que l'événement était fait sur le form1 et non le form2.

Effectivement, ton code marche.

C'est juste que j'aurais plutôt vu ceci :
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            this.Hide();
            f.ShowDialog();
            this.Close();
        }

(Ce qui revient au même)

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de krimog
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 29 nov. 2010 à 11:14
0
Utile
Bonjour

Déjà, tu ne "veux" pas un code. Tu en "voudrais" un.
Ensuite, ce sujet a déjà été traité des milliers de fois. Avant de poser une question, on fait des recherches !

@theflayer :
f.FormClosing += new FormClosingEventHandler(f_FormClosing);

        private void f_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.Close();
        }

Si je traduis : Quand il y a une demande de fermeture sur la fenêtre, tu demandes à nouveau une fermeture de la fenêtre...
Tu te rends compte que ça fera planter ton programme ? (Puisque cet événement s'appelle lui-même, récursivement, sans condition d'arrêt)

Enlève ces lignes et ton programme fonctionnera sans problème. Cependant, il vaut mieux passer par un f.ShowDialog(), ce qui permettra de rendre la main à ton premier form uniquement après que ton deuxième soit fermé (ce qui te permet de mettre un this.Close() ou un this.Show() après f.ShowDialog())


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Commenter la réponse de krimog
theflayer 125 Messages postés dimanche 28 février 2010Date d'inscription 21 juin 2015 Dernière intervention - 29 nov. 2010 à 11:23
0
Utile
Salut , moi je n'utilise pas ce code mon utilisation fut différente.
Mais j'ai déjà fais un test de ce code que je n'ai pas écris il viens de la :

http://www.csharpfr.com/forum/sujet-FERMER-FORM1-APRES-OUVERTURE-FORM2_796544.aspx

J'ai pas eu de plantage c'est pour cela que je me suis permis de le lui transmettre.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Commenter la réponse de theflayer
theflayer 125 Messages postés dimanche 28 février 2010Date d'inscription 21 juin 2015 Dernière intervention - 29 nov. 2010 à 21:19
0
Utile
Pas de soucis. Première fois que j'aide quelqu'un ca se fête !
En esperant qu'il revienne mettre résolu


Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
Commenter la réponse de theflayer

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.