Fermer Form1 après ouverture de Form2 [Résolu]

cpadmin 43 Messages postés lundi 12 juin 2006Date d'inscription 31 octobre 2006 Dernière intervention - 15 août 2006 à 11:45 - Dernière réponse : MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention
- 15 août 2006 à 14:00
Bonjour à tous!

Voilà alors j'ai un petit souci, voilà j'ai une form1 qui contient un bouton. Lorsque qu'on clique sur ce bouton, la form1 doit disparaitre et une form2 apparaitre, et cela seulement si le bouton a été cliqué.

Pour cela, j'ai essayé:

static void Main()
        {
            Application.Run(new Form1());
            Application.Run(new Form2());
        }

Mais le problème est que quand je ferme ma form1, la form2 s'ouvre après.

j'ai aussi essayé:

private void button1_Click(object sender, System.EventArgs e)
        {
            this.Hide();
        }

La form1 disparait et la form2 apparait, mais une fois que je ferme la form2, le processus du programme continue à cause que form1 n'est pas fermer.

Pourriez-vous m'aider à fermer form1 lorsqu'on ferme form2?
Ou alors killer le processus à la fermeture de form2?

D'avance je vous en remercie.
Afficher la suite 

Votre réponse

12 réponses

MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 15 août 2006 à 12:49
+3
Utile
Salut

Depuis form1 tu t'inscris a l'evenement FormClosing de ton form2, et dans la méthode associée, tu fais this.Close()

Mx
MVP C# 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de MorpionMx
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 15 août 2006 à 12:51
+3
Utile
Plus concrétement :


 


 





<hr />






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();
}


<hr />







Mx
MVP C#
 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de MorpionMx
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 15 août 2006 à 13:08
+3
Utile
Salut,

L'event FormClosing n'existe qu'en .NET 2.0, en .NET 1.1 tu peux utiliser l'event Closing.

/*
coq
MVP Visual C#
CoqBlog
*/
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_coq
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 15 août 2006 à 13:44
+3
Utile
CancelEventArgs ;)

http://msdn2.microsoft.com/fr-fr/library/system.windows.forms.form.closing.aspx

Mx
MVP C# 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de MorpionMx
cpadmin 43 Messages postés lundi 12 juin 2006Date d'inscription 31 octobre 2006 Dernière intervention - 15 août 2006 à 12:55
0
Utile
mmmh okay je vais essayer!

Merci bien!
Commenter la réponse de cpadmin
cpadmin 43 Messages postés lundi 12 juin 2006Date d'inscription 31 octobre 2006 Dernière intervention - 15 août 2006 à 13:06
0
Utile
il me dit:

Le type ou le nom d'espace de noms 'FormClosingEventArgs' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?).

Ce que j'ai fais:

Dans form1:

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

private void button1_Click(object sender, EventArgs e)
        {
            Form2 principale = new Form2();
            principale.FormClosing += new FormClosingEventHandler (principale_FormClosing);
            this.Hide();
            principale.Show();
        }

Je me suis trompé en insérant le code?
Ou il faut mettre une directive using?
Commenter la réponse de cpadmin
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 15 août 2006 à 13:14
0
Utile
Erf, je suis plus habitué au 1.x 

Mx
MVP C# 
Commenter la réponse de MorpionMx
cpadmin 43 Messages postés lundi 12 juin 2006Date d'inscription 31 octobre 2006 Dernière intervention - 15 août 2006 à 13:14
0
Utile
Ah! ok merci!

Mais... je dois changer où?...

dans le private void?
partout ou il y a FormCLosing?
Commenter la réponse de cpadmin
cpadmin 43 Messages postés lundi 12 juin 2006Date d'inscription 31 octobre 2006 Dernière intervention - 15 août 2006 à 13:15
0
Utile
Aucun problème!
Merci tout de même pour ta réponse!
Commenter la réponse de cpadmin
cpadmin 43 Messages postés lundi 12 juin 2006Date d'inscription 31 octobre 2006 Dernière intervention - 15 août 2006 à 13:40
0
Utile
en faite j'ai essayé de changer mais ClosingEventArgs n'est pas reconnu....
Commenter la réponse de cpadmin
cpadmin 43 Messages postés lundi 12 juin 2006Date d'inscription 31 octobre 2006 Dernière intervention - 15 août 2006 à 14:00
0
Utile
Voilà maintenant ca fonctionne parfaitement!

Merci beaucoup pour ton aide et ta patience!

Bonne après midi!
Commenter la réponse de cpadmin
MorpionMx 3489 Messages postés lundi 16 octobre 2000Date d'inscription 30 octobre 2008 Dernière intervention - 15 août 2006 à 14:00
0
Utile
Y'a pas de quoi
Mx
MVP C# 
Commenter la réponse de MorpionMx

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.