2009-10-30 6 views
2

Je veux avoir un NotifyIcon dans la barre d'état système qui, lorsqu'on clique dessus, ouvre un menu contextuel sur le NotifyIcon avec plusieurs options qui ouvrent différents formulaires.Avoir un menu ouvert lorsque vous cliquez sur un NotifyIcon (VB.NET)

J'ai lu que je dois utiliser un ContextMenu et après Google'ing et essayer différents codes je ne peux pas sembler le faire fonctionner:/

Toute aide à ce sujet est grandement appreicated.

+0

Quelle partie ne fonctionne pas? Afficher le menu contextuel ou ouvrir des formulaires à partir des éléments du menu contextuel? –

+0

Désolé, cela aurait dû être plus spécifique. Le menu contextuel entier ne se charge pas. Je n'arrive pas à comprendre comment le montrer. – Whitey

+1

Vous avez déjà essayé de faire comme l'exemple mentionné ici? : http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx – Naveen

Répondre

1

Avez-vous déjà conçu votre ContextMenu dans le concepteur de fiches? Si ce n'est pas le cas, c'est la première étape. Créez un nouveau ContextMenu (en double-cliquant dessus dans la boîte à outils sur la gauche) et ajoutez-y tous vos éléments de menu. Ensuite, vous pouvez double-cliquer sur chaque élément qui mettra dans un gestionnaire d'événement vide .Click où vous placerez l'appel formname.Show(). Vous devrez également ajouter un NotifyIcon dans le concepteur de formulaire et lorsque vous modifiez les propriétés, il existe une propriété appelée "Menu contextuel" dans laquelle vous entrez le nom du ContextMenu ci-dessus. Si vous voulez que l'icône soit visible tout le temps, vous pouvez simplement définir la propriété Visible sur True.

1

Ajouter menu contextuel à votre pour (s'il y a une forme) ou déclarer une instance de menu contextuel:

Voici un exemple rapide:

ContextMenu cm; NotifyIcon ni; Public Form1() { ni = new NotifyIcon(); ni.BalloonTipIcon = ToolTipIcon.Info;

cm = new ContextMenu(); 

    cm.MenuItems.Add(new MenuItem("Hello", delegate(object sender, EventArgs e) 
    { 
     MessageBox.Show(DateTime.Now.ToString("dd/MMM/yyyy hh:mm:ss tt")); 
    })); 

    cm.MenuItems.Add(new MenuItem("Exit", delegate(object sender, EventArgs e) 
    { 
     ni.Visible = false; 
     ni.Dispose(); 
     Application.Exit(); 
    })); 

    ni.ContextMenu = cm; 

    ni.Visible = true; 
    ni.Icon = this.Icon; 
} 
Questions connexes