Sdílet prostřednictvím


Postupy: Přidružení kontextové nabídky ke komponentě Windows Forms NotifyIcon

Poznámka

I když MenuStrip a ContextMenuStrip nahrazují a přidávají funkce do ovládacích prvků MainMenu a ContextMenu předchozích verzí, MainMenu a ContextMenu se zachovají pro zpětnou kompatibilitu i budoucí použití, pokud se rozhodnete.

Komponenta NotifyIcon zobrazí ikonu v oznamovací oblasti stavu na hlavním panelu. Aplikace běžně umožňují po kliknutí pravým tlačítkem myši na tuto ikonu odesílat příkazy do aplikace, kterou představuje. Přidružením komponenty ContextMenu ke komponentě NotifyIcon můžete tuto funkci přidat do svých aplikací.

Poznámka

Pokud chcete, aby byla vaše aplikace při spuštění minimalizovaná a současně zobrazovala instanci komponenty NotifyIcon na hlavním panelu, nastavte vlastnost WindowState hlavního formuláře na Minimized a ujistěte se, že je vlastnost Visible komponenty NotifyIcon nastavena na true.

Přidružení místní nabídky ke komponentě NotifyIcon v době návrhu

  1. Přidejte do formuláře NotifyIcon komponentu a nastavte důležité vlastnosti, jako jsou Icon a vlastnosti Visible.

    Další informace naleznete v tématu Postupy: Přidání ikon aplikací do panelu úloh pomocí komponenty Windows Forms NotifyIcon.

  2. Přidejte do formuláře Windows Form ContextMenu komponentu.

    Do místní nabídky přidejte položky, které představují příkazy, jež chcete mít k dispozici při spuštění. Je také vhodná doba pro přidání vylepšení do těchto položek nabídky, jako jsou přístupové klávesy.

  3. Nastavte vlastnost ContextMenu komponenty NotifyIcon na místní nabídku, kterou jste přidali.

    Když je tato vlastnost nastavena, zobrazí se místní nabídka po kliknutí na ikonu na hlavním panelu.

Přidružení místní nabídky ke komponentě NotifyIcon pomocí programového kódu

  1. Vytvořte instanci třídy NotifyIcon a třídy ContextMenu s nastavením jakékoli vlastnosti potřebné pro aplikaci (Icon a Visible vlastnosti pro komponentu NotifyIcon, položky nabídky pro komponentu ContextMenu).

  2. Nastavte vlastnost ContextMenu komponenty NotifyIcon na místní nabídku, kterou jste přidali.

    Když je tato sada vlastností nastavená, zobrazí se místní nabídka po kliknutí na ikonu na hlavním panelu.

    Poznámka

    Následující příklad kódu vytvoří základní strukturu nabídek. Možnosti nabídky budete muset přizpůsobit těm, které odpovídají aplikaci, kterou vyvíjíte. Kromě toho budete chtít napsat kód pro zpracování událostí Click pro tyto položky nabídky.

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

Poznámka

Je nutné inicializovat notifyIcon1 a contextMenu1,, které můžete provést zahrnutím následujících příkazů do konstruktoru formuláře:

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

Viz také