Réduire dans le sistray avec la croix rouge

Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 19 juil. 2008 à 14:44
ricky84 Messages postés 44 Date d'inscription dimanche 8 septembre 2002 Statut Membre Dernière intervention 13 janvier 2014 - 19 juil. 2008 à 19:21
Bonjour à tous,
Comment faire pour que quand un utilisateur clique sur la petite croix rouge en haut à droite, la form ne se ferme pas, mais se mette dans le sistray ?
J'ai trouvé comment faire pour empêcher la fermeture :

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
End Sub

et pour détecter la fermeture par la croix rouge :

  AddHandler Application.ApplicationExit, AddressOf Application_Exit

 Private Shared Sub Application_Exit(ByVal sender As Object, ByVal e As System.EventArgs)
        MessageBox.Show("Croix rouge utilisée !")
    End Sub

Voila, mais je n'arrive pas à mixer les deux pour aoir ce que je veux.
J'ai aussi placé un NotifyIcon pour le sistray

Merci d'avance.

7 réponses

gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
19 juil. 2008 à 15:29
Private





Sub

Form1_FormClosing(


ByVal

sender


As





Object

,


ByVal

e


As

System.Windows.Forms.FormClosingEventArgs)


Handles





Me

.FormClosinge.Cancel =



True








Me

.Hide()NotifyIcon1.Visible =



True


NotifyIcon1.Text =





Me

.Text



End





Sub








'ça c'est pour quela feuille redevienne visible quand on fait un doubleclick sur le trayicon








Private





Sub

ntfSystemInfo_DoubleClick(


ByVal

sender


As





Object

,


ByVal

e


As

System.EventArgs)


Handles

NotifyIcon1.DoubleClickNotifyIcon1.Visible =



False








Me

.Show()



End





Sub

'on s'en fout de la croix rouge








il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
19 juil. 2008 à 15:38
Ok merci bien, mais j'utilise un contextmenustrip pour afficher différentes commandes lors de réduction dans le sistray dont la commande close avec pour code :
Application.exit
seulement, lors du débogage, l'appli refuse de se fermer !

Et aussi, est il possible lors de l'apparition dans le sistray de mettre une infobulle (Sur l'icone du sistray) pour prévenir l'utilisateur ?
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
19 juil. 2008 à 15:52
Tout est possible
une messagebox c'est plus simple et ça l'utilisateur il peut pas la rater

dans les propriétés de ta form:
ShowinTaskbar=false
WindowState=minimized

ensuite tu la remet à normal

Private
Sub ntfSystemInfo_DoubleClick(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles NotifyIcon1.DoubleClickNotifyIcon1.Visible =

False

Me.WindowState = FormWindowState.Normal

Me.Show()

End
Sub
il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
19 juil. 2008 à 16:16
Non, mais en fait mon pb est que l'appli ne veut pas se fermer tout simplement, je ne peux pas la quitter et l'utilisateur sera obligé de faire un ctrl+alt+sup, pas pratique, car

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

Intercepte toutes demandes de fermeture !

Et sinon, pour l'infobulle ? (La messageBox va vite énerver l'utilisateur car il peut y avoir un trés grand nombre de passage dans le systray !)
0

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

Posez votre question
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
19 juil. 2008 à 16:21
pour fermer ton prog utilise un boolean
si menufermer alors fermer=true
pour l'infobulle attends je reviens

il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
19 juil. 2008 à 16:30
http://www.codeproject.com/KB/miscctrl/taskbarnotifier.aspx
http://www.codeproject.com/KB/miscctrl/TaskbarNotifier/TaskbarNotifier_vb.zip



mieux qu'un tooltip , une fenètre popup skinnable


ce truc est génial






il y a 10 sortes de gens: ceux qui comprennent le binaire, et les autres
0
ricky84 Messages postés 44 Date d'inscription dimanche 8 septembre 2002 Statut Membre Dernière intervention 13 janvier 2014
19 juil. 2008 à 19:21
Dans form1.FormClosing, mettre




If e.CloseReason = CloseReason.UserClosing


Then
      e.Cancel =


True
      
Et le code pour mettre dans le systray




End



If

ainsi, on peut quand meme la fermer par un click sur un menu

e.CloseReason = CloseReason.UserClosing quand on ferme la feuille par la croix rouge ou ALT F4
0
Rejoignez-nous