Mise à jours d'une form à la fermeture d'une autre [Résolu]

Signaler
Messages postés
10
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
31 mars 2009
-
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
-
Bonjour, je souhaiterais savoir si quelqu'un aurait une petite solution à me porposer.

Je cherche à déclancher une mise à jours d'une winform parent à la fermeture d'une autre....

Je sais pas si je suis clair mais je vais essayé de l'être un peu plus . En gros, je charge une première fiche qui me permet d'afficher un datagrid, lorsque je clique sur une ligne cela me charge une fiche contenant toutes les informations qui sont modifiables . Je fais mes modifications je valide et cela me ferme ma fenêtre mais j'aimerais pouvoir déclancher un rechargement de la première winform à ce moment précis.

Mon problème est que je ne trouve pas de zone de propriété qui permettrais de dire que lorsque la fiche repasse en premier plan qu'elle se rafraichisse ...

Auriez vous des suggestions ???

9 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
39
Salut.
Si tu ne souhaites pas que ta première form soit utilisable pendant que ta deuxième est ouverte, il y a plus simple encore.
form.Show(); // Non bloquant
form.ShowDialog(); // Bloquant jusqu'à la fermeture de la fenêtre

Tu peux donc faire :

Form2 newForm = new Form2();
newForm.ShowDialog();
this.Refresh();

Krimog :
while (!succeed = try()) ;
Messages postés
561
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
10 juin 2010

il te suffirait de t'attacher à l'event formclosed et dans le delegate, tu fais le refresh de ta form
Messages postés
10
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
31 mars 2009

si je m'attache .... avec une corde tu veut dire ?

Tu aurais pas un exemple plus précis, je suis loin d'être un pro et la gestion des delegates je connais pas trop ...
si tu connais un site avec un tuto ou autre ... ca pourrait m'aider .
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Bonjour,

Voici comment te "binder" sur l'événement "FormClosed" de ta deuxième form.
Ainsi, tu pourras exécuter le rafraîchissement de ta page.

Pour ce faire:
private void button1_Click(object sender, EventArgs e)
{
  Form2 newForm = new Form2();
  newForm.FormClosed += new FormClosedEventHandler(newForm_FormClosed);//Bind de l'événement FormClosed avec l'exécution d'une méthode
  newForm.ShowDialog();
}

La méthode:
//Déclenchée par l'événement FormClosed de la Form2
private void newForm_FormClosed(object sender, FormClosedEventArgs e)
{
  this.Refresh();//A implémenter...
}

Voila tout,

Bonne journée

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
10
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
31 mars 2009

Alors je sais pas trop si j'ai tous compris mais lorsque tu ferme le new form, tu déclanche le refresh du this. qui correspond pour moi au this de new form ... j'arrive pas à l'implementé de manière à ce qu'il corresponde au this de ma form principal....
Messages postés
10
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
31 mars 2009

Merci à tous de vos réponces ... sérieusement je commencais à m'arracher les cheveux ... en effet le show dialogue bloquant la suite ... il m'a suffit de créer ma méthode de refresh (j'ai enfin compris ce que billout me disait en précisant // à implémenter ... je croyais qu'une fonction existait ... que je trouvais pas ^^) enfin ca marche !!!
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
De rien. Bon courage pour la suite,

Une chose quand même: Billou sans "t" stp Car je ne suis ni nordiste ni une billoute

Bonne journée,

Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Messages postés
1
Date d'inscription
mardi 16 novembre 2004
Statut
Membre
Dernière intervention
1 mai 2011

Bonjour,
pour ma part jai le meme soucis, jai fait plusieur recherche sur le net et sur msdn et en vain mon refresh ne se fait pas .

jai initialiser un Form1_Load et mis un FormClosing event et sa ne fonctionne toujour pas

voici la structure :

private void Form1_Load(object sender, EventArgs e)
{
//je load ma class_lib ici
}

private void btnCreateLogAndPass_Click(object sender, EventArgs e)
{
LoginAndPass logAndPass = new LoginAndPass();
logAndPass.FormClosed +=new FormClosedEventHandler(logAndPass_FormClosed);
logAndPass.ShowDialog();
}

private void logAndPass_FormClosed(object sender, FormClosedEventArgs e)
{
this.Load +=new EventHandler(Form1_Load);
}

Quand je regarde en mode Debog je voi que mes event se passe bien sauf (this.Load +=new EventHandler(Form1_Load);
) ne se fait pas ???
Jai meme essyer avec this.Refresh(); et meme chose. Si vous avez une idée ou un petit truc je suis preneur.
merci
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
Salut,

Lorsque logAndPass se ferme, ton Form1 est déjà chargé... donc, l'évènement Load ne se déclenchera pas... Que souhaites tu faire exactement ?