Savoir quand on clic sur le bouton fermer [Résolu]

molbento 35 Messages postés vendredi 6 avril 2007Date d'inscription 23 mai 2007 Dernière intervention - 30 avril 2007 à 17:02 - Dernière réponse : romainvv 46 Messages postés lundi 19 mars 2007Date d'inscription 22 mai 2009 Dernière intervention
- 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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
romainvv 46 Messages postés lundi 19 mars 2007Date d'inscription 22 mai 2009 Dernière intervention - 5 mai 2007 à 19:42
3
Merci
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

Merci romainvv 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 126 internautes ce mois-ci

Commenter la réponse de romainvv
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 30 avril 2007 à 17:08
0
Merci
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 #
Commenter la réponse de cs_casy
romainvv 46 Messages postés lundi 19 mars 2007Date d'inscription 22 mai 2009 Dernière intervention - 5 mai 2007 à 17:30
0
Merci
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
Commenter la réponse de romainvv
romainvv 46 Messages postés lundi 19 mars 2007Date d'inscription 22 mai 2009 Dernière intervention - 5 mai 2007 à 19:34
0
Merci
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
Commenter la réponse de romainvv
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 mai 2007 à 19:56
0
Merci
    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 #
Commenter la réponse de cs_casy
romainvv 46 Messages postés lundi 19 mars 2007Date d'inscription 22 mai 2009 Dernière intervention - 6 mai 2007 à 15:36
0
Merci
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 ,
Commenter la réponse de romainvv
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 6 mai 2007 à 16:52
0
Merci
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 #
Commenter la réponse de cs_casy
romainvv 46 Messages postés lundi 19 mars 2007Date d'inscription 22 mai 2009 Dernière intervention - 6 mai 2007 à 17:53
0
Merci
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
Commenter la réponse de romainvv
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 6 mai 2007 à 18:17
0
Merci
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 #
Commenter la réponse de cs_casy
romainvv 46 Messages postés lundi 19 mars 2007Date d'inscription 22 mai 2009 Dernière intervention - 6 mai 2007 à 18:36
0
Merci
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
Commenter la réponse de romainvv

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.