IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Ouverture formulaire sur fermeture programme


Sujet :

VB.NET

  1. #1
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut Ouverture formulaire sur fermeture programme
    Bonjour,

    J'ai un programme qui lance une première form qui sera la form principale pour tout le projet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Menu_Principal.IsMdiContainer = True
    Avec chaque autre form déclaré en tant que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MdiParent = Menu_Principal
    Ce que je souhaite quand l'utilisateur ferme le programme donc ferme le "Menu_Principal", c'est qu'il m'affiche une de mes forms avant de fermer le programme.

    Pour cela j'ai donc essayer les évènements suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Menu_principal_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
     
    Private Sub Menu_principal_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Leave
     
    Private Sub Menu_principal_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
    Le code que je souhaite exécuter est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            If resolchanged = 1 Then
     
                Form_Resolution.Show()
     
                       End If
    En ce qui concerne les évènements "Leave" et "Closed", je comprend que le fait de fermer le MdiParent ferme forcément les MdiEnfants, mais pour le "Closing" je ne comprend pas.

    Y a-t-il un moyen de réaliser ce que je souhaite avec que des forms dépendant de ma form_principale (MdiEnfant), ou dois-je mettre la Form_Resolution indépendate de mon Menu_Principal pour que cela fonctionne.

    L'avantage du Mdi étant que la form en question (Form_Resolution) est incluse dans ma form principale, donc s'affiche toujours dedans, l'affichant au lancement et à la fermeture du programme.

    D'avance merci.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 206
    Points : 28 129
    Points
    28 129
    Par défaut
    C'est effectivement à priori plutôt sur le FormClosing qu'il faut le faire.

    Mais essaye plutôt avec ShowDialog pour stopper l'exécution du FormClosing tant que le fenêtre fille n'est pas fermée
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Je vais tester merci.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  4. #4
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Non ca ne change rien.

    Mais bon j'ai trouvé une solution à mon problème, au lieu d'ouvrir une form qui permette d'aller dans les paramètres d'affichages, je change automatiquement la résolution écran au début (si différentes de celle nécessaire pour mon programme), et à la fin je rétablis automatiquement l'ancienne résolution, plus besoin de menu.

    Mais bon j'aimerais quand même savoir comment j'aurais pu faire par curiosité.

    Merci des réponses.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  5. #5
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Bonjour,

    Je pense que j'ai pas dû bien comprendre le problème mais au cas où ... parce que je viens de créer un projet de test et ce que j'y fait marche:

    J'ai juste fait 2 formulaires FormParent (avec IsMdiContainer à True) et FormEnfant, ensuite dans le Load du Parent je créé par défaut l'enfant et à sa fermeture si la fenêtre enfant existe je la mets en lieu et place du parent sinon j'en ouvre une nouvelle.

    (Note: pour que cela marche, il faut spécifier le "Shutdown Mode" des propriétés du projet sur "When last form closes")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
        Private Sub FormParent_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
            'On créé un nouvel FormEnfant avec FormParent en parent
            Dim fe As New FormEnfant With {.MdiParent = Me}
            fe.Show()
        End Sub
     
        Private Sub FormParent_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
            Dim fe As FormEnfant
            'Si FormParent "contient" au moins un FormEnfant
            If MdiChildren.OfType(Of FormEnfant).Any Then
                'On récupère le premier et lui enlève son lien avec FormParent
                fe = MdiChildren.OfType(Of FormEnfant).First
                fe.MdiParent = Nothing
            Else
                'Sinon on en créé un nouveau
                fe = New FormEnfant
            End If
     
            fe.Show()
        End Sub
    Bon j'ai pas fais tous les tests pour savoir selon les cas si ce code en l'état peut planter, mais je pense que l'adapter dans ces cas (ou aux besoins spécifiques de ton appli) ne devrait pas être le plus dur.

    En croisant les doigts pour bien avoir compris le souci

    Cordialement !
    Nous sommes tous plus ou moins geek : ce qui est inutile nous est parfaitement indispensable ( © Celira )
    À quelle heure dormez-vous ?
    Censément, quelqu'un de sensé est censé s'exprimer sensément.

  6. #6
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Ok je pense que tu as bien compris en effet, en gros sur la fermeture tu enlève le lien de l'enfant pour qu'il soit indépendant je ne savais pas que l'on pouvait faire cela je vais tester.

    Merci.
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

  7. #7
    Membre éclairé Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Points : 813
    Points
    813
    Par défaut
    Bon ben ca fonctionne niquel, merci .
    Geeker c'est comme manger, on ne peut pas s'en passer !!!

    Tout est objet !!!

    ____________________________________

    http://www.geekingmania.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouverture formulaire sur clik dans zone de liste
    Par Niaouli02 dans le forum IHM
    Réponses: 4
    Dernier message: 26/05/2017, 12h50
  2. ouverture formulaire sur zone de liste
    Par santacrus dans le forum IHM
    Réponses: 2
    Dernier message: 09/02/2008, 16h41
  3. Ouverture formulaire sur clic souris
    Par Michel DELAVAL dans le forum Access
    Réponses: 6
    Dernier message: 30/09/2006, 21h33
  4. Réponses: 2
    Dernier message: 03/02/2006, 15h12
  5. Ouverture formulaire sur enregistrement precis
    Par mat_lefebvre dans le forum IHM
    Réponses: 7
    Dernier message: 11/10/2004, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo