"Décacher" une fenêtre à partir d'une autre fenêtre

Signaler
Messages postés
21
Date d'inscription
dimanche 28 novembre 2010
Statut
Membre
Dernière intervention
22 février 2015
-
Messages postés
21
Date d'inscription
dimanche 28 novembre 2010
Statut
Membre
Dernière intervention
22 février 2015
-
Je viens de commencer une appli en C# et je suis encore débutant.

J'ai une fenêtre principale Form1 avec pleins de boutons.

J'arrive à faire un Form1.Hide() quand je clique sur mes bouton pour ouvrir d'autres fenêtre.

Mon problème est que je n'arrive pas à faire réapparaitre ma fenêtre principale quand je quitte ma fenêtre fille.

J'ai créé une fonction

private void mafille_closed(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBox.Show("Test VideTopcon_closed System.CancelEventArgs","Test",MessageBoxButtons.OK);
Appli.Form1.ActiveForm.Show();
}

qui me renvoie ma MessageBox quand je quitte ma fenêtre fille mais pas ma Winform mère.

Pour alléger un peu le tout, ma fenêtre fille et ma fenêtre mère ne sont pas dans le même fichier mais dans le même "namespace".

Est-ce que quelqu'un sait comment faire réapparaitre ma fenêtre ???

2 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
je peux te proposer 2 methodes :
Form1 = "mere"
Form2 = "fille"

1) passage du form "parent" à l'autre :
dans Form2 :
private Form previousform;

public Form2(Form prevform)
{
InitializeComponent();

this.previousform = prevform;
}

...

private void Form2_Closed(object sender, System.EventArgs e)
{
previousform.Show();
}


exemple d'appel :
private void button1_Click(object sender, System.EventArgs e)
{
this.Hide();
Form2 form = new Form2(this);
form.Show();
}


2) event de fermeture directement géré dans le form1
tout se passe donc dans le Form1 ce coup ci
private void button1_Click(object sender, System.EventArgs e)
{
this.Hide();
Form2 form = new Form2();
form.Show();
form.Closed += new EventHandler(form2_Closed);
}

private void form2_Closed(object sender, EventArgs e)
{
this.Show();
}


Je te laisse choisir ce qui te convient le mieux

Cocoricoooooooo !!!!
Messages postés
21
Date d'inscription
dimanche 28 novembre 2010
Statut
Membre
Dernière intervention
22 février 2015

Merci.

J'ai pris la deuxième solution car j'ai plein d'autres boutons qui ont les même fonctionnalités et vont me causer le même problème.

Je vais avoir plein de "fille.Closed += new EventHandler(form2_Closed);" dans "mes button_click{...}".