A la fermeture d'une Form1 ouvrir une Form2 [Résolu]

Signaler
Messages postés
13
Date d'inscription
vendredi 8 mai 2015
Statut
Membre
Dernière intervention
16 novembre 2015
-
Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020
-
Salut à tous.

A l'ouverture de mon application j'ai une Form1 (c'est un formulaire avec FormBorderStyle=none, qui me permet de charger des informations) qui s'affiche en modal.
A la fin des différents traitement la Form1 doit se fermer et ouvrir une Form2 en modal.
Voici mon code
Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated
        Label6.Text = "de la raison sociale de l'entreprise"
        AffichageNomSociete()
        Application.DoEvents()

        System.Threading.Thread.Sleep(1000)

        Label6.Text = "des différentes liste de type et de mesure d'article"
        RemplirListeTypeArticle()
        RemplirListeMesure()
        RemplirListeStock()
        Application.DoEvents()

        System.Threading.Thread.Sleep(1000)

        Label6.Text = "de la liste des articles"
        AffichageListeArticle()
        Application.DoEvents()

        System.Threading.Thread.Sleep(1000)

        Form2 .ShowDialog()

        Me.Close()
    End Sub


A la fin du traitement la Form2 s'affiche bien, mais la Form1 reste toujours affichée derrière la Form2. Or Form1 doit plus être afficher, il doit être fermer.

Je n'arrive pas à trouver de solution.
J'ai besoin de vos aides.

2 réponses

Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020
143
Une petite recherche dans l'aide t'aurais indiqué que :
Form2 .ShowDialog()
est bloquant et donc tant que Form2 est affiché, le code n'avance plus.

Utilises simplement :
Form2 .Show()
Messages postés
13
Date d'inscription
vendredi 8 mai 2015
Statut
Membre
Dernière intervention
16 novembre 2015

Merci pour ta remarque pertinente.
En utilisant Form2 .Show() et après fermeture de la Form1, la Form2 n'est pas affichée elle est réduite.
En faisant Form2 .Show(), la Form2 reste en mode réduit elle n'est pas affichée à la fermeture de la Form1.

J'ai trouvé une solution qui me convient:
A l'ouverture de l'application afficher Form2 en ShowDialog puis dans le load de la Form2 ouvrir Form1 en ShowDialog.
Ainsi Form1 reste affiché en modal et après fermeture Form2 est affiché aussi en modal.

Merci pour vos aides.
Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020
143
Pas forcément, mais je ne vois pas ce que tu as pu testé pour ne pas avoir accès à cette propriété en mode exécution.
Messages postés
13
Date d'inscription
vendredi 8 mai 2015
Statut
Membre
Dernière intervention
16 novembre 2015
>
Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020

Ok j'ai pu avoir la propriété WindowState de la Form2 en mode exécution elle reste toujours à normal pour rappel j'utilise VS 2013 express
Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020
143
Donc la form n'est pas réduite, mais en arrière plan, je pense.
Il faut peut être lui donner le focus.
Messages postés
13
Date d'inscription
vendredi 8 mai 2015
Statut
Membre
Dernière intervention
16 novembre 2015
>
Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020

J'ai essayé avec Form2.Activate() mais elle reste toujours en arrière plan. Avec quoi tu donnerais le focus à la form
Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020
143 >
Messages postés
13
Date d'inscription
vendredi 8 mai 2015
Statut
Membre
Dernière intervention
16 novembre 2015

Je n'ai pas l'environnement sous la main actuellement

Voir avec :
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.bringtofront%28v=vs.110%29.aspx