Partager via


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

  1. 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.

  2. 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.

  3. 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

  1. 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).

  2. 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

Comment : ajouter des icônes d'application à la barre des tâches à l'aide du composant NotifyIcon Windows Forms

Référence

Vue d'ensemble du composant NotifyIcon (Windows Forms)

NotifyIcon

Icon

Autres ressources

NotifyIcon, composant (Windows Forms)