Actualiser une Form à la fermeture d'une autre

Résolu
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014 - 18 janv. 2012 à 15:54
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014 - 19 janv. 2012 à 16:15
Bonjour,

J'ai une Form avec des infos que je récupère depuis ma BDD. Je suis en VB.NET.
Cependant, je peux cliquer sur un bouton qui va m'ouvrir une nouvelle Form pour ajouter des infos. Je voudrais que lorsque je ferme la deuxième form, la première s'actualise afin d'avoir les infos.

Quelqu'un aurait il une solution ?

Cordialement

8 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
19 janv. 2012 à 11:12
Bonjour,

C'est simple tu le mets dans l'évenement FormClosing de ton Form comme ceci:

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
'ici le code pour réactualiser ton Form1
    End Sub



Le Pivert
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
19 janv. 2012 à 11:26
Pour préciser un peut ma réponse :
Quand tu ouvre ton form2 tu ajoute dans ton form1 un événement sur form2 (ensuite a toi de décider quel événement utiliser, Disposed n'est pas forcément le meilleur choix car il n'est appeler que quand ton form est retirer totalement de la mémoire, ce qui n'est pas le cas quand tu ferme un form, désoler grosse fatigue hier)
FormClosed est, je pense, le bonne événement
Le code dans ton form1 :
    Private MyForm2 As Form

    Private Sub OuvreForm2()
        MyForm2 = New Form2
        MyForm2.Show()
        AddHandler MyForm2.FormClosed, AddressOf MyForm2_FormClosed
    End Sub

    Private Sub MyForm2_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs)
        MajForm1()
        RemoveHandler MyForm2.FormClosed, AddressOf MyForm2_FormClosed 'Pour être plus propre mais je ne sait pas si l’intérêt est réel ^^
    End Sub

    Private Sub MajForm1()
        [...]
    End Sub


Voila avec ça tu devrais t'en tirer facilement

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
18 janv. 2012 à 16:56
Tu ajoute un événement sur ton 1er form :

Quand tu appel le second form tu fait :
AddHandler Form2.Disposed, AddressOf Form2_Disposed

Évidement il faut crée la fonction Form2_Disposed :
Private Sub Form2_Disposed(ByVal sender As Object, ByVal e As System.EventArgs)
        [...]
    End Sub


Rien de plus (tu peut aussi utiliser d'autre événements que Disposed ;) )

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
19 janv. 2012 à 09:36
Merci pour ta réponse mais cela ne fonctionne pas, ou plutôt devrais je dire : Je n'arrive pas a l'utiliser. En effet je ne vois pas à quoi ça sert.

Car je souhaite que lorsque l'utilisateur clique sur la croix rouge pour fermer la form2, la form1 se mette à jour. Donc je pensais que c’était en rapport avec des évènements.

Peux tu m'éclairer un peu plus sur ta solution car même avec le MSDN, je ne pige pas le principe...

Cordialement
0

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

Posez votre question
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
19 janv. 2012 à 11:32
Oui la solution de "Le Pivert" est plus simple mais te force a appeler la mise a jour de Form1 depuis Form2.

Je pense que les deux solutions sont valable ^^

Avec ma solution, attention si tu peut ouvrir plusieurs instance de Form2 depuis le même Form1. Tu pourrais avoir (tu auras) des mauvaises surprises. Utiliser une collection de Form2 peut être une solution a ce nouveau problème

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
19 janv. 2012 à 12:10
Pufffffffffff décidément ma dyslexie me joue des tours
Dans la 1ere phrase de ma vidéo, j'ai inverser l'ordre de sélection
Bon on y voie quand même mon problème (mais ras le bol de me louper maintenant )

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
19 janv. 2012 à 12:10
Oups mauvais sujet (comme je le disais RAS LE BOL DE ME LOUPER BESOIN DE VACANCES) ne pas prendre en compte mon message précédant

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
19 janv. 2012 à 16:15
Merci à vous deux pour vos réponses

Pas grave Polack
0
Rejoignez-nous