Partager via


Comment : associer un menu contextuel à un composant NotifyIcon Windows Forms

Remarque

Bien que MenuStrip et remplacez et ContextMenuStrip ajoutez des fonctionnalités aux MainMenu contrôles et ContextMenu aux contrôles des versions précédentes, MainMenu et ContextMenu sont conservés pour la compatibilité descendante et l’utilisation ultérieure si vous choisissez.

Le NotifyIcon composant affiche une icône dans la zone de notification d’état de la barre des tâches. En règle générale, les applications vous permettent de cliquer avec le bouton droit sur cette icône pour envoyer des commandes à l’application qu’elle représente. En associant un ContextMenu composant au NotifyIcon composant, vous pouvez ajouter cette fonctionnalité à vos applications.

Remarque

Si vous souhaitez que votre application soit réduite au démarrage lors de l’affichage d’une instance du NotifyIcon composant dans la barre des tâches, définissez la propriété Minimized du WindowState formulaire principal sur et assurez-vous que la NotifyIcon propriété du Visible composant est définie truesur .

Pour associer un menu contextuel au composant NotifyIcon au moment du design

  1. Ajoutez un NotifyIcon composant à votre formulaire et définissez les propriétés importantes, telles que les propriétés et Visible les Icon propriétés.

    Pour plus d’informations, consultez Guide pratique pour ajouter des icônes d’application à la barre des tâches avec le composant NotifyIcon Windows Forms.

  2. Ajoutez un ContextMenu composant à votre Windows Form.

    Ajoutez des éléments de menu au menu contextuel représentant les commandes que vous souhaitez rendre disponibles au moment de l’exécution. C’est également un bon moment pour ajouter des améliorations de menu à ces éléments de menu, tels que les touches d’accès.

  3. Définissez la ContextMenu propriété du NotifyIcon composant sur le menu contextuel que vous avez ajouté.

    Avec ce jeu de propriétés, le menu contextuel s’affiche lorsque l’icône de la barre des tâches est cliquée.

Pour associer un menu contextuel au composant NotifyIcon par programmation

  1. Créez une instance de la NotifyIcon classe et une ContextMenu classe, avec les paramètres de propriété nécessaires pour l’application (Icon et Visible les propriétés du NotifyIcon composant, éléments de menu pour le ContextMenu composant).

  2. Définissez la ContextMenu propriété du NotifyIcon composant sur le menu contextuel que vous avez ajouté.

    Avec ce jeu de propriétés, le menu contextuel s’affiche lorsque l’icône de la barre des tâches est cliquée.

    Remarque

    L’exemple de code suivant crée une structure de menu de base. Vous devez personnaliser les choix de menu pour ceux qui correspondent à l’application que vous développez. En outre, vous souhaiterez écrire du code pour gérer les Click événements de ces éléments 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:  
   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;  
   }  

Remarque

Vous devez initialiser notifyIcon1 et contextMenu1, ce que vous pouvez faire 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