Udostępnij za pośrednictwem


Instrukcje: powiązanie menu kontekstowego z komponentem NotifyIcon w formularzach systemu Windows

Notatka

Mimo że MenuStrip i ContextMenuStrip zastąpiły i dodały funkcje do kontrolek MainMenu i ContextMenu w wersjach poprzednich, MainMenu i ContextMenu są zachowane dla zapewnienia zgodności wstecz i do użycia w przyszłości, jeśli wybierzesz.

Składnik NotifyIcon wyświetla ikonę w obszarze powiadomień o stanie paska zadań. Często aplikacje umożliwiają kliknięcie tej ikony prawym przyciskiem myszy w celu wysyłania poleceń do aplikacji, którą reprezentuje. Kojarząc składnik ContextMenu ze składnikiem NotifyIcon, można dodać tę funkcję do aplikacji.

Notatka

Jeśli aplikacja ma być zminimalizowana podczas uruchamiania podczas wyświetlania wystąpienia składnika NotifyIcon na pasku zadań, ustaw właściwość WindowState formularza głównego na Minimized i upewnij się, że właściwość Visible składnika NotifyIcon jest ustawiona na wartość true.

Aby skojarzyć menu skrótów ze składnikiem NotifyIcon w czasie projektowania

  1. Dodaj składnik NotifyIcon do formularza i ustaw ważne właściwości, takie jak właściwości Icon i Visible.

    Aby uzyskać więcej informacji, zobacz Jak dodać ikony aplikacji do paska zadań za pomocą komponentu NotifyIcon w Windows Forms.

  2. Dodaj składnik ContextMenu do formularza systemu Windows.

    Dodaj elementy menu do menu skrótów, które reprezentują polecenia, które chcesz udostępnić podczas wykonywania programu. Jest to również dobry moment na dodanie ulepszeń menu do tych elementów menu, takich jak klucze dostępu.

  3. Ustaw właściwość ContextMenu składnika NotifyIcon na dodane menu skrótów.

    Po ustawieniu tej właściwości, menu skrótów zostanie wyświetlone po kliknięciu ikony na pasku zadań.

Aby programowo skojarzyć menu skrótów ze składnikiem NotifyIcon

  1. Utwórz wystąpienie klasy NotifyIcon i klasy ContextMenu z ustawieniami właściwości, które są niezbędne dla aplikacji (Icon i Visible właściwości składnika NotifyIcon, elementów menu dla składnika ContextMenu).

  2. Ustaw właściwość ContextMenu składnika NotifyIcon na dodane menu skrótów.

    Gdy ta właściwość jest ustawiona, po kliknięciu ikony na pasku zadań zostanie wyświetlone menu skrótów.

    Notatka

    Poniższy przykład kodu tworzy podstawową strukturę menu. Musisz dostosować opcje menu do tych, które pasują do tworzonej aplikacji. Ponadto należy napisać kod do obsługi zdarzeń Click dla tych elementów 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;  
   }  

Notatka

Należy zainicjować notifyIcon1 i contextMenu1,, co można zrobić, umieszczając następujące instrukcje w konstruktorze formularza.

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

Zobacz też