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
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 #
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
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 ,
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 #
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 #