Fermeture d'un form et l'ouverture d'une autre

Résolu
bounasri Messages postés 3 Date d'inscription vendredi 17 décembre 2010 Statut Membre Dernière intervention 3 avril 2011 - 28 nov. 2010 à 13:51
theflayer Messages postés 125 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 21 juin 2015 - 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.
A voir également:

5 réponses

theflayer Messages postés 125 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 21 juin 2015 2
28 nov. 2010 à 22:05
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.
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
29 nov. 2010 à 11:53
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é. -
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
29 nov. 2010 à 11:14
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é. -
0
theflayer Messages postés 125 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 21 juin 2015 2
29 nov. 2010 à 11:23
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
theflayer Messages postés 125 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 21 juin 2015 2
29 nov. 2010 à 21:19
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.
0
Rejoignez-nous