Поделиться через


Практическое руководство. Связывание контекстного меню с компонентом NotifyIcon в Windows Forms

Примечание.

Хотя элементы управления MenuStrip и ContextMenuStrip заменяют элементы управления MainMenu и ContextMenu предыдущих версий и расширяют их функциональные возможности, элементы управления MainMenu и ContextMenu сохраняются для обратной совместимости и возможного применения в будущем.

Компонент NotifyIcon отображает значок в области состояния на панели задач. Как правило, приложения позволяют щелкнуть этот значок правой кнопкой мыши для отправки команд в приложение, которое оно представляет. Связав компонент ContextMenu с компонентом NotifyIcon, вы можете добавить эту функцию в приложения.

Примечание.

Если вы хотите, чтобы приложение было свернуто при запуске при отображении экземпляра компонента NotifyIcon на панели задач, задайте для свойства WindowState основной формы значение Minimized и убедитесь, что свойство Visible компонента NotifyIcon имеет значение true.

Связывание контекстного меню с компонентом NotifyIcon во время разработки

  1. Добавьте компонент NotifyIcon в форму и задайте важные свойства, такие как Icon и Visible.

    Дополнительные сведения см. в статье Практическое руководство. Добавление значков приложения на панель задач с помощью компонента NotifyIcon в Windows Forms.

  2. Добавьте компонент ContextMenu в форму Windows.

    Добавьте пункты меню в контекстное меню, представляющие команды, которые нужно сделать доступными во время выполнения. Также рекомендуется добавить улучшения меню в эти пункты меню, такие как клавиши доступа.

  3. Присвойте свойству ContextMenu компонента NotifyIcon добавленное контекстное меню.

    Если задано это свойство, контекстное меню будет отображаться при щелчке значка на панели задач.

Связывание контекстного меню с компонентом NotifyIcon программным способом

  1. Создайте экземпляр класса NotifyIcon и класса ContextMenu с любыми параметрами свойств, необходимыми для приложения (свойства Icon и Visible компонента NotifyIcon, пункты меню для компонента ContextMenu).

  2. Присвойте свойству ContextMenu компонента NotifyIcon добавленное контекстное меню.

    Если задано это свойство, контекстное меню будет отображаться при щелчке значка на панели задач.

    Примечание.

    В следующем примере кода создается базовая структура меню. Вам потребуется настроить пункты меню для разрабатываемого приложения. Кроме того, необходимо написать код для обработки событий Click для этих пунктов меню.

    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;  
   }  

Примечание.

Необходимо инициализировать notifyIcon1 и contextMenu1,. Для этого включите следующие инструкции в конструктор формы:

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

См. также