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 :

[VB.NET] La croix rouge de fermeture ne déclenche pas close


Sujet :

Windows Forms

  1. #1
    Membre expérimenté Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Points : 1 482
    Points
    1 482
    Par défaut [VB.NET] La croix rouge de fermeture ne déclenche pas close
    Salut à tous

    J'ai un petit énorme problème sur un projet VB.NET 2003
    en fait le clic sur la croix rouge de fermeture ne déclenche pas l'événement : MyBase.Closed

    D'où cela peut-il bien venir?
    Ingénieur Multimédia - TMM Communication

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    as-tu capturé l'événement closing ?
    MyBase.Closing

  3. #3
    Membre expérimenté Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Points : 1 482
    Points
    1 482
    Par défaut
    Oui

    j'ai également rajouté un bouton qui déclenche
    Me.Close()
    mais en mode debug, le code passe par là mais ne ferme pas la fenêtre
    en fait l'événement MyBase.Closed n'est pas déclenché
    Ingénieur Multimédia - TMM Communication

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Cette form est affichée avec ShowDialog() ou Show() ?
    On ne peut pas faire boire un âne qui n'a pas soif.

  5. #5
    Membre expérimenté Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Points : 1 482
    Points
    1 482
    Par défaut
    Show
    Quelle est la différence entre les deux?
    J'ai donc ajouté un bouton qui déclenche la fermeture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Private Sub btFermer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btFermer.Click
            Me.Dispose()
            Me.Close()
        End Sub
    je suis obligé de faire çà pour que ca ferme à tous les coups
    Ingénieur Multimédia - TMM Communication

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Avec ShowDialog(), la fenêtre n'est pas détruite à la fermeture pour pouvoir ensuite lire un DialogResult.
    Ce n'est pas le problème ici donc.
    On ne peut pas faire boire un âne qui n'a pas soif.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    si tu as mis un evenement closing dans ta forme. Lorsque tu cliques sur la croix il execute le contenu de cet evenement.

    C'est donc dans cet evenement que tu dois mettre
    Me.Close()

  8. #8
    Membre expérimenté Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Points : 1 482
    Points
    1 482
    Par défaut
    En fait lorsque je clic sur la croix rouge ca doit déclencher l'événement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub frmM_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
     
        End Sub
    Or par moment, l'événement n'est plus déclenché

    donc j'a rajouté un bouton avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Private Sub btFermer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btFermer.Click
            Me.Dispose()
            Me.Close()
        End Sub
    et là ca ferme la fenêtre
    donc ca ne sert à rien que je rajoute du code dans Mybase.Closed car il n'y passe pas
    Ingénieur Multimédia - TMM Communication

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    La fermeture d'une Form déclenche un événement FormClosing suivi d'un événement FormClosed.
    Dans le premier, on peut annuler la fermeture avec FormClosingEventArgs.Cancel

    Est-ce que MyBase dans ton code fait référence à une classe de base ou c'est bien la classe de la form qui doit se fermer?
    On ne peut pas faire boire un âne qui n'a pas soif.

  10. #10
    Membre expérimenté Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Points : 1 482
    Points
    1 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Class frmMsgE
        Inherits System.Windows.Forms.Form
     
    ...
     
        Private Sub frmMsgE_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
     
        End Sub
     
    End Class
    C'est le form qui doit se fermer
    Ingénieur Multimédia - TMM Communication

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Je crois que ma question montre bien que je ne programme pas en VB
    On ne peut pas faire boire un âne qui n'a pas soif.

Discussions similaires

  1. [Débutant] rendre inactive croix rouge de fermeture
    Par matubun dans le forum MATLAB
    Réponses: 4
    Dernier message: 05/07/2010, 10h48
  2. Réponses: 1
    Dernier message: 26/09/2009, 02h41
  3. Réponses: 13
    Dernier message: 20/07/2007, 14h51
  4. petite croix rouge
    Par frandis dans le forum Oracle
    Réponses: 4
    Dernier message: 13/12/2006, 11h08
  5. 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, 19h43

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