Savoir quand on clic sur le bouton fermer

Résolu
molbento Messages postés 35 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 23 mai 2007 - 30 avril 2007 à 17:02
romainvv Messages postés 46 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 22 mai 2009 - 6 mai 2007 à 18:36
Bonjour je pense que le titre est assez clair. J'aimerais savoir s'il y a la fonction de la petite croix rouge en haut a droite (bouton fermer) d'une form peut etre modifier. Quelqu'un peut-il m'aider

10 réponses

romainvv Messages postés 46 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 22 mai 2009
5 mai 2007 à 19:42
Et ben j'ai trouvé

Private
Sub Form1_FormClosing(
ByVal sender
As System.Object,
ByVal e
As System.Windows.Forms.FormClosingEventArgs)
Handles
MyBase.FormClosing

If e.CloseReason.UserClosing
Thene.Cancel =

True

Me.Hide()

End
If

End
Sub

Mais je comprend pas
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 avril 2007 à 17:08
regarde les évènement QueryUnload et Unload, tu as un paramètre qui te donne l'indication de la raison de la fermeture.
Une de ces raisons est le click sur la croix (appelé menu système, je crois)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
romainvv Messages postés 46 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 22 mai 2009
5 mai 2007 à 17:30
Y-aurait-il moyen de dévider le bouton "fermer" pour que les fênetre se minimise
Un truc du genre :
Private sub le_bouton_X_click (.....) handles bouton.click
Me.hide
End Sub
Tu sais pas comment faire ca ?
J'ai cherché mais j'ai trouvé qu'en delphi
0
romainvv Messages postés 46 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 22 mai 2009
5 mai 2007 à 19:34
J'ai trouvé ca :

PrivateSub Form1_FormClosing(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles _
MyBase.FormClosing
    If e.CloseReason.UserClosing Then
        e.Cancel = True
    EndIf
EndSub

 mais quand je le modifie en ca :

PrivateSub Form1_FormClosing(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles _
MyBase.FormClosing
Me.Hide ()
EndSub

ca va pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 mai 2007 à 19:56
    Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

        'Si fermeture volontaire par l'utilisateur
        If e.CloseReason = CloseReason.UserClosing Then

            'fermeture annulé
            e.Cancel = True

            'A la place, reduction et masquage de la fenetre
            Me.Hide()

        End If

    End Sub

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
romainvv Messages postés 46 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 22 mai 2009
6 mai 2007 à 15:36
Merci bien
Mais il y a un mais ...
J'ai fait un notifyicon quand je clique sur l'icone j'ai le menu que j'ai mis avec le bouton fermer (Me.close) le programme ben il le ferme pas !
Logique vu que je lui dit que si on le ferme il se masque ...
N'y a t il pas une variante pour avoir un événement uniquement quand j'appuie sur le bouton X ?
Merci ,
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 mai 2007 à 16:52
ce que tu peux faire, c'est dans le bouton qui doit fermer l'application, au lieu d'appeler Me.Close pour fermer la fenetre, tu appele Application.Closing. A vérifier avant que tout à été correctement fermé et que cette fenetre est bien la dernière à fermer.

Ensuite dans Form_Closing tu filtre les raisons de la fermeture. Pour un click sur la croix, tu auras UserClosing, dans ce cas tu réduit la fenetre et t'annule la fermeture.
Dans les autres cas, et notamment sur le click du bouton ou tu obtiendra ApplicationExitCall comme raison,  tu laisse faire la fermeture normale.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
romainvv Messages postés 46 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 22 mai 2009
6 mai 2007 à 17:53
Donc si je comprend bien .
Me.Close va avec UserClosing
et
Application.Closing va avec ApplicationExitCall

Le problème si je met Application.Closing à la place de Me.Close j'ai Erreur 4 'Closing' n'est pas un membre de 'System.Windows.Forms.Application'. 

Aussi non ApplicationExitCall jz dois le mettre ou ? pres de UserClosing cad bouton X
ou quand j'appuie sur mon bouton fermer

Je suis un peux perdu mais j'ai essayé dans tout les sens
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 mai 2007 à 18:17
Excuse moi, je me suis tromper, c'est Application.Exit

Après ApplicationExitCall tu n'en a pas vraiment besoin, tu peux conserver le code de Form_Closing que je t'avais donné avant.

Mais si tu veux voici un exemple de l'utilisation que tu pourrais en faire :

Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

    'Si fermeture volontaire par l'utilisateur
    If e.CloseReason = CloseReason.UserClosing Then
        'fermeture annulé
        e.Cancel = True
        'A la place, reduction et masquage de la fenetre
        Me.Hide()
    ElseIf e.CloseReason = CloseReason.ApplicationExitCall Then
        'Si bouton Fermer
        If MessageBox.Show("Fermeture de définitive de l'application.", "ATTENTION", _
                           MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, _
                           MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Cancel Then
            'Choix du bouton Annuler --> Annulation de la fermeture
            e.Cancel = True
            'A la place, reduction et masquage de la fenetre
            Me.Hide()
        End If
    End If
End Sub

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
romainvv Messages postés 46 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 22 mai 2009
6 mai 2007 à 18:36
C'est bon ca fontionne impec
Voila à quoi tu m'as aidé (mon premier programme)
http://romainvv.be/divers/WoWBureau_v1.2.exe
Merci beaucoup
0
Rejoignez-nous