Condividi tramite


Procedura: Associare un menu di scelta rapida a un componente NotifyIcon di Windows Form

Nota

Anche se MenuStrip e ContextMenuStrip sostituiscono e aggiungono funzionalità ai controlli MainMenu e ContextMenu delle versioni precedenti, MainMenu e ContextMenu vengono mantenuti sia per la compatibilità con le versioni precedenti che per l'uso futuro, se voi scegliete.

Il componente NotifyIcon visualizza un'icona nell'area di notifica dello stato della barra delle applicazioni. In genere, le applicazioni consentono di fare clic con il pulsante destro del mouse su questa icona per inviare comandi all'applicazione rappresentata. Associando un componente ContextMenu al componente NotifyIcon, è possibile aggiungere questa funzionalità alle applicazioni.

Nota

Se si desidera ridurre al minimo l'applicazione all'avvio mentre si visualizza un'istanza del componente NotifyIcon nella barra delle applicazioni, impostare la proprietà WindowState del modulo principale su Minimized e assicurarsi che la proprietà Visible del componente NotifyIcon sia impostata su true.

Per associare un menu di scelta rapida al componente NotifyIcon in fase di progettazione

  1. Aggiungi un componente NotifyIcon al tuo modulo e imposta le proprietà importanti, come le proprietà Icon e Visible.

    Per ulteriori informazioni, vedere Procedura: Aggiungere icone dell'applicazione alla Barra delle applicazioni con il componente NotifyIcon di Windows Forms.

  2. Aggiungere un componente ContextMenu a Windows Form.

    Aggiungere voci di menu al menu di scelta rapida che rappresenta i comandi da rendere disponibili in fase di esecuzione. Questo è anche un buon momento per aggiungere miglioramenti alle voci di menu, come i tasti di accesso rapido.

  3. Impostare la proprietà ContextMenu del componente NotifyIcon sul menu di scelta rapida che hai aggiunto.

    Con questa proprietà impostata, il menu di scelta rapida verrà visualizzato quando si fa clic sull'icona sulla barra delle applicazioni.

Per associare un menu di scelta rapida al componente NotifyIcon a livello di codice

  1. Creare un'istanza della classe NotifyIcon e una classe ContextMenu, con le impostazioni di proprietà necessarie per l'applicazione (Icon e proprietà Visible per il componente NotifyIcon, voci di menu per il componente ContextMenu).

  2. Imposta la proprietà ContextMenu del componente NotifyIcon sul menu di scelta rapida che hai aggiunto.

    Con questa proprietà impostata, il menu di scelta rapida verrà visualizzato quando si fa clic sull'icona sulla barra delle applicazioni.

    Nota

    Nell'esempio di codice seguente viene creata una struttura di menu di base. Sarà necessario personalizzare le opzioni di menu in base a quelle che si adattano all'applicazione in fase di sviluppo. Inoltre, è necessario scrivere codice per gestire gli eventi Click per queste voci di 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;  
   }  

Nota

È necessario inizializzare notifyIcon1 e contextMenu1,, cosa che puoi fare includendo le seguenti istruzioni nel costruttore del tuo form:

notifyIcon1 = gcnew System::Windows::Forms::NotifyIcon();  
contextMenu1 = gcnew System::Windows::Forms::ContextMenu();  

Vedere anche