Focus - icone pres de l'horloge [VB.NET]

Signaler
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005
-
Messages postés
240
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009
-
Bonjour,

comment je peux faire pour que mon application garde le focus (soit en 1er plan sur toutes les autres applications windows) et lorsque je reduit mon appli, faire en sorte que l'icone se mette pres de l'horloge et non dans la barre de tache.

Merci

7 réponses

Messages postés
79
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
14 juillet 2005
1
1. Si la propriété TopMost du form est à True, ce form reste au premier plan de toutes les autres applications.
Messages postés
79
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
14 juillet 2005
1
2. Avec VB6 il fallait utiliser les API et c'était compliqué. Merci .NET car il existe le contrôle NotifyIcon

Ajoute une icon à NotifyIcon (fenêtre propriété)

'Form1_Load
NotifyIcon1.Visible = False

'Pour afficher
Me.Hide()
NotifyIcon1.Visible = True
NotifyIcon1.Text = "Titre popup....."

Tu peux ajouter un contrôle ContextMenu et le lier à NotifyIcon (fenêtre propriété) et créer ton menu qui sera visible si tu clic sur l'icon près de l'horloge.
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

merci Phil23 mais comment je peux le mettre en true que lorsque je click sur l'icone de diminution de la fenetre ? et l'enlever dans la barre de tache ?

merci a toi
Messages postés
79
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
14 juillet 2005
1
Fait comme ça:

Sur le Form1 tu places un contrôle NotifyIcon1 et ContextMenu1.
Dans propriété de NotifyIcon1:
- ContextMenu = ContextMenu1
- Icon = Choisis un fichier .ico

Dans propriété de ContextMenu1:
- Clic sur edit menu (en bas)
- Ajoute un menu (MenuItem1) et comme texte tu mets Afficher.

Colle ce code et c'est fait !

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Au démarrage cache l'icone
NotifyIcon1.Visible = False
End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
'Arrêt du prog. cache l'icone
NotifyIcon1.Visible = False
End Sub

Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
'Menu contextuel (Afficher)
Me.Show()
NotifyIcon1.Visible = False
Me.WindowState = FormWindowState.Normal
End Sub

Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
'Cacher le form et afficher l'icone
If Me.WindowState = FormWindowState.Minimized Then
Me.Hide()
NotifyIcon1.Visible = True
End If
End Sub
Messages postés
104
Date d'inscription
vendredi 8 août 2003
Statut
Membre
Dernière intervention
1 mars 2005

Merci a toi, tout fonctionne ;o)

juste un petit truc, si je ne veux pas faire de menu contextuelle mais simplement doublecliker sur l'icone du notifyicon pour que ma fenetre rapparaisse, je fais comment ?

merci encore
Messages postés
79
Date d'inscription
mardi 23 septembre 2003
Statut
Membre
Dernière intervention
14 juillet 2005
1
Et bien utilise les évenements de NotifyIcon1 à la place des évenements de MenuItem1.

'Par exemple pour clic
Private Sub NotifyIcon1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.Click
'Afficher
Me.Show()
NotifyIcon1.Visible = False
Me.WindowState = FormWindowState.Normal
End Sub

'Il y a aussi double-clic
Private Sub NotifyIcon1_DoubleClick.........
Messages postés
240
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009

Moi je cré mes menus dynamiquement, mais je sais pas comment récupérer l'index de l'item sélectionné par l'utilisateur, qq sais ?

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Pour afficher
        Me.Hide()
        NotifyIcon1.Visible = True
        NotifyIcon1.Text = "Titre"
        NotifyIcon1.Icon = Me.Icon
        ContextMenu1.MenuItems.Add("[Nouveau Dossier]").MenuItems.Add("[Nouveau Fichier]")
        ContextMenu1.MenuItems.Add("[Nouveau Fichier]")
    End Sub