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

Windows Forms Discussion :

Croix de fermeture WinForm


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 19
    Points
    19
    Par défaut Croix de fermeture WinForm
    Bonjour!

    J'ai une application qui contient plusieurs formes.
    Grâce à un menu, l'utilisateur peut accéder de une forme à une autre (pour ca j'utilise la proprieté form1.visible = true form2.visible = false.... j'espère que ça soit correcte).

    Je souhaite que l'application soit fermée en cliquant sur la croix rouge de n'importe quelle forme.

    Actuellement cela ne fonctionne que si je fais click sur la croix de la form principal. Si je le fais sur une autre, ce fenêtre se la seul qui se ferme, le programme reste en exécution, mais comme toutes les autres fenêtres sont invisibles alors je dois l'arrêter manuellement
    Merci pour votre aide!

    Maria Carolina

  2. #2
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 775
    Points
    1 775
    Par défaut
    Bonjour.

    Le .visible = false ne ferme rien...

    Comme le code l'indique, cela ne sert qu'à rendre visible ou non la form.

    Donc pour ce que tu veux faire, cela n'a aucun intérêt.

    Par contre, dans les propriétés du projet, tu peux peut-être trouver ton bonheur du côté du "Mode d'arrêt".

    Si non, tu peux jouer sur l'event FormClosed pour quitter l'application.
    (conseil : créer un form perso qui gére la fermeture de l'appli sur cet event et faire hériter l'ensemble des forms de cette form)

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Merci Olsimare!

    Je vais essayer de trouver une solution en suivant vos conseils, mais j'avais déjà essayé avec la propriété .close avant et j'ai eu les problèmes suivants:

    1) Quand j'ai fermé la form principal tout le programme s'arrête.
    2) Si je ferme un form et après je veux la ouvrir nouvellement en utilisant le menu, je n'ai trouvé la propriété .open

    Pour te donner une idée... le projet que je suis en train de faire, ce la calculatrice de windows 7 (complet... standard, scientifique, programmeur.... ) et le utilisateur doit pouvoir changer de l'un vers l'autre plusieurs fois et finir le programme n'importe quelle soit la dernier form ouvert.


    Comme vous voyez je commence avec Visual Basic, désolé si mes questions sont très basiques.

  4. #4
    Membre habitué Avatar de benito9253
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 205
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par mbessega Voir le message
    1) Quand j'ai fermé la form principal tout le programme s'arrête.
    Va dans les propriétés du projet, et dans "Mode d'arrêt" mets "A la fermeture du dernier formulaire".

    Citation Envoyé par mbessega Voir le message
    2) Si je ferme un form et après je veux la ouvrir nouvellement en utilisant le menu, je n'ai trouvé la propriété .open
    Pourquoi tu ne fais pas Form.Show ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Merci Benito par ta reponse!

    Je avais déjà essaie avec "Mode d'arrêt" mets "A la fermeture du dernier formulaire", mais voici le probleme:

    Supposons que j'ai met deux forms, form1 et form 2, la form de demarrage est form1... dans le code pour form1 j'ai les instructions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.close()
    form2.show()
    Il ferme la premier forme et ouvre la deuxieme.. c-à-d tout paraît parfait!

    Mais si après je veux revenir a la premier form, la procedure
    form1.show() ne marche pas... selon je comprend, ce parce que la form1 a été completement fermé.
    Je ne connais pas un procedure pour le réouvrir.
    c-à-d maintenant, je peux fermer la application a partir de le deuxième form mais je ne peut pas revenir au premier. Je dois pouvoir me changer de form librement.

    Voici la deuxieme option que j'ai trouvé:

    Supposons que j'ai met deux forms, form1 et form 2, la form de demarrage est form1... dans le code pour form1 j'ai les instructions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.visible=false
    form2.show()
    ça cache (pas ferme) la premier form et affiche la deuxieme, après je peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.visible=false
    form1.show()
    et se cache la form2 et se ouvre la form1, ce procedure parait avoir resolu le problème de me changer de une form a l'autre.... mais....

    maintenant comme il y a toujour une form invisible, quand je ferme la dernier form "visible" (avec la croix rouge) le programme suive son execution.... parce que il reste une autre form ouvert.


    Comme tu peux voir je n'arrive pas a trouver la bonne réponse!!


    Mon idée est de travailler avec visible (pour pouvoir parcourir tous les forms librement) mais gérer le évènement de fermeture en utilisant la croix rouge (programmer la croix rouge pour faire form1.close(), form2.close(),. comme ça tous mes formes seront fermées... le problème es que je ne trouve pas l'évènement de click sur la croix rouge de fermeture....

    et dans mon cours de VB je n'ai pas vu (encore) l'héritage pour créer une nouvelle class de forms...

  6. #6
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 775
    Points
    1 775
    Par défaut
    Bonjour.

    Tu peux faire hériter tes forms de cette classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Public Class frmExitAppliOnClose
        Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
            MyBase.OnClosed(e)
            Application.Exit()
        End Sub
    End Class
    Un exemple de form qui hérite de cette form de base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Class frmExitAppliOnClose1
        Inherits frmExitAppliOnClose
    End Class
    Remarque : si tu ne connais pas les basiques de la PO, il y a plein de truc sur le web qui pourront t'éclairer.

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Bonjour.

    Pourquoi ne pas simplement gérer l'évènement FormClosing de la 2ème Form ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            Application.Exit()
    End Sub

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup a tous , maintenant tout marche bien avec mon application!! et en plus j'ai appris comme faire hériter mes forms!!

  9. #9
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 775
    Points
    1 775
    Par défaut
    Bonjour.

    Juste pour répondre à cela :
    Citation Envoyé par mustardpimp Voir le message
    Pourquoi ne pas simplement gérer l'évènement FormClosing de la 2ème Form ?
    Parce que :
    Citation Envoyé par mbessega Voir le message
    Je souhaite que l'application soit fermée en cliquant sur la croix rouge de n'importe quelle forme.
    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

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

Discussions similaires

  1. [Débutant] [vb.net] Desactiver la croix de fermeture d'1 Form
    Par Manix dans le forum Windows Forms
    Réponses: 8
    Dernier message: 10/01/2014, 12h31
  2. [JDialog] Enlever la croix de fermeture
    Par binouche22 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 08/04/2011, 11h55
  3. Associer Script a la croix rouge fermeture fenetre
    Par Oaurelius dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/11/2005, 18h43
  4. Gestion du clic sur la croix de fermeture !
    Par Atomikx dans le forum MFC
    Réponses: 3
    Dernier message: 15/11/2005, 11h47
  5. Cacher la croix de fermeture
    Par jean tof dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/07/2004, 16h33

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