Como: Associar um menu de atalho a um componente NotifyIcon do Windows Forms
Observação
Embora MenuStrip e ContextMenuStrip substituam e adicionem funcionalidade aos controles MainMenu e ContextMenu de versões anteriores, MainMenu e ContextMenu são retidos para compatibilidade com versões anteriores e uso futuro, se você escolher.
O componente NotifyIcon exibe um ícone na área de notificação de status da barra de tarefas. Geralmente, os aplicativos permitem que você clique com o botão direito do mouse nesse ícone para enviar comandos para o aplicativo que ele representa. Ao associar um componente ContextMenu ao componente NotifyIcon, você pode adicionar essa funcionalidade aos seus aplicativos.
Observação
Se você quiser que seu aplicativo seja minimizado na inicialização enquanto exibe 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 Visible do componente NotifyIcon esteja definida como true
.
Para associar um menu de atalho ao componente NotifyIcon em tempo de projeto
Adicione um componente NotifyIcon ao 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 Windows Forms NotifyIcon.
Adicione um componente ContextMenu ao seu Windows Form.
Adicione itens de menu ao menu de atalho que representa os comandos que você deseja disponibilizar em tempo de execução. Este também é um bom momento para adicionar aprimoramentos de menu a esses itens de menu, como teclas de acesso.
Defina a propriedade ContextMenu do componente NotifyIcon para o menu de atalho que você adicionou.
Com essa propriedade definida, 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
Crie uma instância da classe NotifyIcon e uma classe ContextMenu, com quaisquer configurações de propriedade necessárias para o aplicativo (Icon e Visible propriedades para o componente NotifyIcon, itens de menu para o componente ContextMenu).
Defina a propriedade ContextMenu do componente NotifyIcon para o menu de atalho que você adicionou.
Com essa propriedade definida, 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 aquelas que se encaixam no aplicativo que você está desenvolvendo. Além disso, você desejará escrever código para manipular os eventos Click 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 ao adicionar as seguintes instruções no construtor do formulário:
notifyIcon1 = gcnew System::Windows::Forms::NotifyIcon();
contextMenu1 = gcnew System::Windows::Forms::ContextMenu();
Ver também
.NET Desktop feedback