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

Observação

Embora MenuStrip e ContextMenuStrip substituam e adicionem funcionalidades aos controles MainMenu e ContextMenu das versões anteriores, MainMenu e ContextMenu são mantidos tanto para compatibilidade com versões anteriores quanto para uso futuro, se você escolher.

O NotifyIcon componente exibe um ícone na área de notificação de status da barra de tarefas. Normalmente, os aplicativos permitem que você clique com o botão direito do mouse neste í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 NotifyIcon na barra de tarefas, defina a propriedade WindowState do formulário principal como Minimized e certifique-se de que a propriedade NotifyIcon do componente Visible esteja definida como true.

Para associar um menu de atalho ao componente NotifyIcon em tempo de design

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

    Para obter mais informações, consulte Como adicionar ícones de aplicativo à Barra de Tarefas com o componente NotifyIcon dos Windows Forms.

  2. Adicione um ContextMenu componente ao Seu Formulário do Windows.

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

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

    Com esse conjunto de propriedades, o menu de atalho será exibido quando o ícone na barra de tarefas for clicado.

Para associar um menu de atalho ao componente NotifyIcon programaticamente

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

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

    Com esse conjunto de propriedades, o menu de atalho será exibido quando o ícone na barra de tarefas for clicado.

    Observação

    O exemplo de código a seguir cria uma estrutura de menu básica. Você precisará personalizar as opções de menu para aqueles que se encaixam no aplicativo que você está desenvolvendo. Além disso, você desejará escrever código para lidar com os Click eventos desses 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 você pode fazer incluindo as seguintes instruções no construtor do formulário:

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

Consulte também