A la fermeture d'une Form1 ouvrir une Form2

Résolu
namo2015 Messages postés 13 Date d'inscription vendredi 8 mai 2015 Statut Membre Dernière intervention 16 novembre 2015 - 8 mai 2015 à 15:05
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 15 mai 2015 à 17:31
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
8 mai 2015 à 15:09
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()
0
namo2015 Messages postés 13 Date d'inscription vendredi 8 mai 2015 Statut Membre Dernière intervention 16 novembre 2015
9 mai 2015 à 11:14
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.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
9 mai 2015 à 12:02
As-tu regardé la valeur de la propriété WindowState de la Form2 quand elle est réduite ?
0
namo2015 Messages postés 13 Date d'inscription vendredi 8 mai 2015 Statut Membre Dernière intervention 16 novembre 2015
9 mai 2015 à 13:52
Je n'arrive pas à voir la propriété WindowState de la Form en mode exécution. Mais elle est à Normal à la création et je pense qu'elle l'est toujours pendant l'exécution.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
9 mai 2015 à 14:03
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.
0
namo2015 Messages postés 13 Date d'inscription vendredi 8 mai 2015 Statut Membre Dernière intervention 16 novembre 2015 > NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024
Modifié par namo2015 le 9/05/2015 à 21:44
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
10 mai 2015 à 00:21
Donc la form n'est pas réduite, mais en arrière plan, je pense.
Il faut peut être lui donner le focus.
0
Rejoignez-nous