Como associar um menu de atalho a um componente NotifyIcon do Windows Forms

Observação

Embora MenuStrip e substitua e adicione funcionalidade aos MainMenu controles e controles de versões anteriores, e são mantidos para compatibilidade com versões anteriores e ContextMenuContextMenuStripContextMenu uso futuro, MainMenu se você escolher.

O NotifyIcon componente exibe um ícone na área de notificação de status da barra de tarefas. Normalmente, aplicativos permitem clicar com o botão direito do mouse nesse ícone para enviar comandos para o aplicativo que ele representa. Ao associar um ContextMenu componente ao NotifyIcon componente, você pode adicionar essa funcionalidade aos seus aplicativos.

Observação

Se você quiser que seu aplicativo seja minimizado na inicialização ao exibir uma instância do componente na barra de tarefas, defina a propriedade do WindowState formulário principal como Minimized e certifique-se de que a NotifyIcon propriedade do NotifyIconVisible componente esteja definida como true.

Associar um menu de atalho ao componente NotifyIcon no tempo de design

  1. Adicione um NotifyIcon componente ao formulário e defina as propriedades importantes, como as Icon propriedades e Visible .

    Para obter mais informações, consulte Como adicionar ícones de aplicativo ao TaskBar com o componente NotifyIcon do Windows Forms.

  2. Adicione um ContextMenu componente ao Windows Form.

    Adicione itens de menu ao menu de atalho que representam os comandos que você deseja disponibilizar no tempo de execução. Esse também é um bom momento para adicionar melhorias de menu a esses itens de menu, como teclas de acesso.

  3. Defina a ContextMenuNotifyIcon propriedade do componente para o menu de atalho que você adicionou.

    Com essa propriedade definida, o menu de atalho será exibido ao clicar no ícone da barra de tarefas.

Associar um menu de atalho ao componente NotifyIcon com programação

  1. Crie uma instância da NotifyIcon classe e uma ContextMenu classe, com quaisquer configurações de propriedade necessárias para o aplicativo (VisibleIcone propriedades para o componente, itens de menu para o ContextMenuNotifyIcon componente).

  2. Defina a ContextMenuNotifyIcon propriedade do componente para o menu de atalho que você adicionou.

    Com essa propriedade definida, o menu de atalho será exibido ao clicar no ícone da barra de tarefas.

    Observação

    O exemplo de código a seguir cria uma estrutura de menu básica. Você precisará personalizar as opções do menu para que se ajustem ao aplicativo que você está desenvolvendo. Além disso, você desejará escrever código para manipular os Click eventos para esses itens 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;  
   }  

Observação

Você deve inicializar notifyIcon1 e contextMenu1,, o que pode ser feito incluindo a instrução a seguir no construtor do formulário:

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

Confira também