Comment : associer un menu contextuel à un composant NotifyIcon Windows Forms
Notes
Bien que MenuStrip et ContextMenuStrip remplacent les contrôles MainMenu et ContextMenu des versions précédentes et leur ajoutent des fonctionnalités, MainMenu et ContextMenu sont conservés pour la compatibilité descendante et une utilisation future, si tel est votre choix.
Le composant NotifyIcon Windows Forms affiche une icône dans la zone d'état de la barre des tâches. En général, les applications autorisent l'utilisateur à cliquer avec le bouton droit sur cette icône afin d'envoyer des commandes à l'application qu'elle représente. En associant un composant ContextMenu au composant NotifyIcon, vous pouvez ajouter ces fonctionnalités à vos applications.
Notes
Si vous souhaitez que votre application soit réduite au démarrage en affichant une instance du composant NotifyIcon dans la barre des tâches, définissez la propriété WindowState du formulaire principal à Minimized et veillez à attribuer à la propriété Visible du composant NotifyIcon la valeur true.
Pour associer un menu contextuel à un composant NotifyIcon au moment du design
Ajoutez un composant NotifyIcon à votre formulaire et définissez les propriétés importantes, telles que Icon et Visible.
Pour plus d'informations, consultez Comment : ajouter des icônes d'application à la barre des tâches à l'aide du composant NotifyIcon Windows Forms.
Ajoutez un composant ContextMenu à votre Windows Form.
Ajoutez des éléments de menu au menu contextuel qui représente les commandes que vous souhaitez rendre disponibles lors de l'exécution. C'est également le moment opportun pour ajouter des améliorations à ces éléments de menu, notamment des touches d'accès rapide.
Définissez la propriété ContextMenu du composant NotifyIcon approprié en fonction du menu contextuel que vous avez ajouté.
Cette propriété étant définie, le menu contextuel s'affiche lorsque l'utilisateur clique sur l'icône dans la barre des tâches.
Pour associer un menu contextuel au composant NotifyIcon par programme
Créez une instance de la classe NotifyIcon et une classe ContextMenu, avec les paramètres de propriété qui sont nécessaires pour l'application (les propriétés Icon et Visible pour le composant NotifyIcon, des éléments de menu pour le composant ContextMenu).
Définissez la propriété ContextMenu du composant NotifyIcon approprié en fonction du menu contextuel que vous avez ajouté.
Cette propriété étant définie, le menu contextuel s'affiche lorsque l'utilisateur clique sur l'icône dans la barre des tâches.
Notes
L'exemple de code qui suit crée une structure de menu élémentaire. Vous devrez personnaliser les options de menu en fonction de l'application que vous développez. Vous devez également écrire le code permettant de gérer les événements Click pour ces options de menu.
Public ContextMenu1 As New ContextMenu Public NotifyIcon1 As New NotifyIcon Public Sub CreateIconMenuStructure() ' Add menu items to shortcut menu. ContextMenu1.MenuItems.Add("&Open Application") ContextMenu1.MenuItems.Add("S&uspend Application") ContextMenu1.MenuItems.Add("E&xit") ' Set properties of NotifyIcon component. NotifyIcon1.Icon = New System.Drawing.Icon _ (System.Environment.GetFolderPath _ (System.Environment.SpecialFolder.Personal) _ & "\Icon.ico") NotifyIcon1.Text = "Right-click me!" NotifyIcon1.Visible = True NotifyIcon1.ContextMenu = ContextMenu1 End Sub
public NotifyIcon notifyIcon1 = new NotifyIcon();
public ContextMenu contextMenu1 = new ContextMenu();
public void createIconMenuStructure()
{
// Add menu items to shortcut menu.
contextMenu1.MenuItems.Add("&Open Application");
contextMenu1.MenuItems.Add("S&uspend Application");
contextMenu1.MenuItems.Add("E&xit");
// Set properties of NotifyIcon component.
notifyIcon1.Icon = new System.Drawing.Icon
(System.Environment.GetFolderPath
(System.Environment.SpecialFolder.Personal)
+ @"\Icon.ico");
notifyIcon1.Visible = true;
notifyIcon1.Text = "Right-click me!";
notifyIcon1.Visible = true;
notifyIcon1.ContextMenu = contextMenu1;
}
public NotifyIcon notifyIcon1 = new NotifyIcon();
public ContextMenu contextMenu1 = new ContextMenu();
public void createIconMenuStructure()
{
// Add menu items to shortcut menu.
contextMenu1.get_MenuItems().Add("&Open Application");
contextMenu1.get_MenuItems().Add("S&uspend Application");
contextMenu1.get_MenuItems().Add("E&xit");
// Set properties of NotifyIcon component.
notifyIcon1.set_Icon(new System.Drawing.Icon
(System.Environment.GetFolderPath
(System.Environment.SpecialFolder.Personal)
+ "\\Icon.ico"));
notifyIcon1.set_Text("Right-click me!");
notifyIcon1.set_Visible(true);
notifyIcon1.set_ContextMenu(contextMenu1);
}
public:
System::Windows::Forms::NotifyIcon ^ notifyIcon1;
System::Windows::Forms::ContextMenu ^ contextMenu1;
void createIconMenuStructure()
{
// Add menu items to shortcut menu.
contextMenu1->MenuItems->Add("&Open Application");
contextMenu1->MenuItems->Add("S&uspend Application");
contextMenu1->MenuItems->Add("E&xit");
// Set properties of NotifyIcon component.
notifyIcon1->Icon = gcnew System::Drawing::Icon
(String::Concat(System::Environment::GetFolderPath
(System::Environment::SpecialFolder::Personal),
"\\Icon.ico"));
notifyIcon1->Text = "Right-click me!";
notifyIcon1->Visible = true;
notifyIcon1->ContextMenu = contextMenu1;
}
Notes
Vous devez initialiser notifyIcon1 et contextMenu1, en incluant les instructions suivantes dans le constructeur de votre formulaire :
notifyIcon1 = gcnew System::Windows::Forms::NotifyIcon();
contextMenu1 = gcnew System::Windows::Forms::ContextMenu();
Voir aussi
Tâches
Référence
Vue d'ensemble du composant NotifyIcon (Windows Forms)