Minimiser dans le systray VB.net

jeffwow Messages postés 140 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 5 septembre 2014 - 3 févr. 2005 à 22:51
FirSteph Messages postés 60 Date d'inscription lundi 21 octobre 2002 Statut Membre Dernière intervention 7 octobre 2007 - 27 juin 2005 à 21:37
Bonjour.

je sais que cette question a été posée maintes fois, mais la plupart des sources que j'ai vue sont en VB6. Je désire que lorsque qu'une fenêtre est minimisée, elle aille dans le system tray (à côté de l'horloge) ET qu'elle ne soit plus dans la barre des taches... (Un peu comme lorsque l'on ferme la fenêtre principale de MSN Messenger... le programme ne se ferme pas, mais s'en va dans le systray.)

Merci,

Jeff

6 réponses

cs_Creat Messages postés 76 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 20 mars 2006
4 févr. 2005 à 03:18
Je cherche la même chose que toi, mais à force de chercher, j'ai fait ce bout de code mais il n'est pas a tout épreuve

Variable globale


Public iLargeur
As
Integer



Public iHauteur
As
Integer

Code dans la form


Private
Sub frmPrincipale_Load(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load



iHauteur =
Me.Width


iLargeur =
Me.Height



End
Sub


Private
Sub notifyIcon1_DoubleClick(
ByVal Sender
As
Object,
ByVal e
As EventArgs)
Handles NotifyIcon1.DoubleClick




' Set the WindowState to normal if the form is minimized.



If (
Me.WindowState = FormWindowState.Minimized)
Then
Me.WindowState = FormWindowState.Normal



' Activate the form.



Me.Show()



Me.Activate()



Me.Width = iHauteur



Me.Height = iLargeur


WindowState = FormWindowState.Normal



End
Sub


Private
Sub frmPrincipale_SizeChanged(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
MyBase.SizeChanged




If (
Me.WindowState = FormWindowState.Minimized)
Then




Me.Hide()



End
If



If (
Me.WindowState = FormWindowState.Normal)
Or (
Me.WindowState = FormWindowState.Maximized)
Then



iHauteur =
Me.Width


iLargeur =
Me.Height



End
If



End
Sub

Si tu trouves mieux fait moi le savoir.

Merci
0
COlive Messages postés 91 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 3 décembre 2011
4 févr. 2005 à 08:32
En vb.net j'utilise la méthode suivnate :
Ajouter en conception graphique un objet Notify Icon

Puis dans l'évenement resize de la feuille :

if me.windowstate = vbminimize then
me.visible = false
notifyicon.visible = true
end if

Plus un Context Menu attaché au notify icon et là Miracle ; c'est d'une facilité extrème comparé à vb6.

En espérant avoir un peu aider.

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
0
jeffwow Messages postés 140 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 5 septembre 2014 1
4 févr. 2005 à 15:36
Merci bien de vos réponses.

À force de chercher j'ai fini par trouvé quelque chose d'aussi simple:


Private
Sub Form1_SizeChanged(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
MyBase.SizeChanged



If
Me.WindowState = FormWindowState.Minimized
Then



Me.ShowInTaskbar =
False


NotifyIcon1.Visible =
True



End
If



End
Sub

Voila :)
0
cs_Creat Messages postés 76 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 20 mars 2006
5 févr. 2005 à 01:31
Dans les 2 cas j'ai des problèmes

Jeffwow:
Met ta barre des tâches en haut ou sur le coté et tu vas t'appercevoir que la premiere fois tout est OK, mais la 2e fois que tu minimises l'application ce retrouve dans le coin en bas à gauche. Comme j'utilise ma barre des tâches en haut, j'ai ce problème.

COlive:
Je ne sais pas pourquoi, une fois minimisé et que l'on veux maximisé ou un retour normal de la fenetre, j'ai seulement la barre du haut de la fenetre (dimension de la fenetre est de 31x161). Comment tu fais pour que ta fenetre revienne comme avant.

Merci de votre aide
0

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

Posez votre question
COlive Messages postés 91 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 3 décembre 2011
5 févr. 2005 à 14:56
je ne sais pas, ma barre des taches est en haut et je n'ai aucun soucis de ce genre.

essaie un me.refresh au cas ou, je vai fournir un petit exemple sous peu...

COlive.
Deux intellectuels assis iront moins loin qu'un con qui marche. Pensez-y !
0
FirSteph Messages postés 60 Date d'inscription lundi 21 octobre 2002 Statut Membre Dernière intervention 7 octobre 2007
27 juin 2005 à 21:37
Merci a ceux qui ont contribués a ce post, j'ai reussi pour ma part a
minimizer tres simplement une fenetre dans le systray avec la fonction
Form_Resize() (avant j'utilisais un timer, ca marchais aussi mais ca
prend un peu plus de CPU). Donc voila mon code:



----

Private Sub Form_Resize() 'Condition that occurs when the form is resized, ie: when it is sent to the taskbar



If Me.WindowState = vbMinimized Then 'Test if the form is minimized, else if the form was resized by user there is no action

Me.Hide 'Hide the current window

Call You_Hide_Function 'Call your systray icon funtion to add an icon into the tray

Me.WindowState = vbNormal 'When all is hidden and
sent to the tray, the window is returned back to its original form,
else the next time you will show the window it will be sent again to
the systray

End If 'That's all folk ! All you have to do is a function to show the
window by click on the tray icon or anything else (can be simply made
by a Me.Show)



End Sub
----



Voila j'espere que ca vous aidera, moi en tout cas ca fonctionne parfaitement =)


@ Bientot :)

FirSteph
0