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
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022
- 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
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022
161
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
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022
161
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
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022
161
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
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022

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
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022
161
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