Mettre un icone dans la barre des taches

Résolu
aifzaide Messages postés 41 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 2 juin 2010 - 9 avril 2007 à 02:33
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 - 16 avril 2007 à 04:06
Bonjour,

J'aimerais que mon programme tourne continuellement meme si on clique sur la croix. C'est a dire qu'un icone se mette dans la barre des taches et que pour reouvrir mon programme on es juste a cliquer sur l'icone. (Exactement comme pour Flashget)

Merci pour votre aide.

10 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
9 avril 2007 à 04:28
Salut, c'est la classe NotifyIcon qui affiche une icone dans le "SystemTray", après il faut jouer avec l'évènement Resize et la propriété WindowState. Tu as une exemple ici :

http://www.csharpfr.com/codes/SYSTEMTRAY-NOTIFYICON_23003.aspx
3
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
9 avril 2007 à 05:56
1. Tu ajoute un element NotifyIcon a ton formulaire
2. Tu t'abonne à l'évenement "OnClick" de ce NotifyIcon et tu y depose "WindowState = FormWindowState.Normal" et "ShowInTaskbar=true"
3. Tu t'abonne à l'évenement "FormClosing" de ton formulaire, et tu y depose "WindowsState = FormWindowState.Minimised", "ShowInTaskbar=false" et "e.Cancel = true" sachant que e est ton paramètre EventArg
4. Je te conseil de rajouter un bouton ou un contextmenu pour fermer completement l'application, et ce il peux le faire via "Application.Exit()"

Voila

Tu peux aussi rajouter un élément ContextMenu sur ta form, et ensuite aller l'associer a la propriete"ContextMenu" de ton NotifyIcon, ce qui aura pour effet de le rendre disponible via le bouton de droit sur ton icone dans la barre des tâche.

Personellement je trouve sa super ce truc en .Net, c vraiment simple et le resultat est très intéressant.

Eric
3
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
9 avril 2007 à 06:05
Effectivement apres quelque test il faudrait Hide() & Show()  ta form, pcq sinon elle reste dispo si tu fait ALT-TAB par exemple, et la sa se met a chier un peu ... javais pas vu le lien a Lutinore, que sa réponse ... je pense que c'est l'idéal ce lien ;)

Eric
3
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
9 avril 2007 à 17:55
Vrai ... suffirait donc de mettre ....

1. Une variable a ta formulaire "StayOpen" à true
2. Dans ton bouton quitter avant le application.exit(), mettre cette var a false3. remplacer "e.Cancel true" par "e.Cancel StayOpen

Mais bon, je trouve pas ça hyper propre

Eric
3

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

Posez votre question
aifzaide Messages postés 41 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 2 juin 2010
9 avril 2007 à 16:04
merci beaucoup pour vos reponse je vais essayer tout ca et je vous dirais si c'est bon mais j'en doute pas :)
0
aifzaide Messages postés 41 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 2 juin 2010
9 avril 2007 à 17:50
Tout marche parfaitement sauf que je ne peux pas fermer completement l'application  meme avec Application.Exit() il passe par le FormClosing() donc ca me minimize tout mais ca ne le ferme jamais. Merci de votre aide
0
aifzaide Messages postés 41 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 2 juin 2010
9 avril 2007 à 18:02
C'est vrai que ce n'es pas super propre mais bon, je vais faire ca merci pour ton aide et t'es réponse rapide :)
0
aifzaide Messages postés 41 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 2 juin 2010
9 avril 2007 à 18:22
J'ai un dernier petit probleme ^^, si par exemple mon programme est dans la barre des taches (reduit) et que je relance mon .exe, il me genere une erreur ce qui es normal car il relance un autre programme mais moi j'aimerais qu'il lance celui qui es deja dans la barre des taches, y'as t-il une option a configurer ou autre? merci d'avance
0
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
9 avril 2007 à 19:01
Comme dit sur l'autre topic, une question posée a la fin dun topic, noté comem réponse acceptée, je doute qu'elle soit lu.

Pourtant, ta question aurait été la mienne dans quelques jours, donc la réponse m'interesse.

J'ai donc reformuler la question sur un nouveau topic
http://www.csharpfr.com/infomsg_SYSTRAY-2E-INSTANCE_918079.aspx

Eric
0
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
16 avril 2007 à 04:06
Pour les archives, voila une source qui répond a ces questions



http://www.csharpfr.com/codes/APPLICATION-NE-POUVANT-ETRE-LANCE-QU-SEULE-FOIS_42201.aspx



Eric
0
Rejoignez-nous