Vorgehensweise: Zuordnen eines Kontextmenüs zu einer NotifyIcon-Komponente in Windows Forms

Hinweis

Obwohl MenuStrip und ContextMenuStrip die Steuerelemente MainMenu und ContextMenu der Vorgängerversionen ersetzen und um zusätzliche Funktionen erweitern, bleiben MainMenu und ContextMenu sowohl für Abwärtskompatibilität als auch für die künftige Verwendung erhalten, falls Sie dies wünschen.

Die NotifyIcon-Komponente zeigt ein Symbol im Statusbenachrichtigungsbereich der Taskleiste an. In der Regel können Sie bei Anwendungen mit der rechten Maustaste auf dieses Symbol klicken, um Befehle an die Anwendung zu senden, zu der es gehört. Indem Sie eine ContextMenu-Komponente der NotifyIcon-Komponente zuordnen, können Sie Ihren Anwendungen diese Funktionalität hinzufügen.

Hinweis

Wenn Sie möchten, dass Ihre Anwendung beim Start minimiert wird, während eine Instanz der NotifyIcon-Komponente auf der Taskleiste angezeigt wird, legen Sie die WindowState-Eigenschaft des Hauptformulars auf Minimized fest. Stellen Sie sicher, dass die Visible-Eigenschaft der NotifyIcon-Komponente auf true festgelegt ist.

So ordnen Sie der NotifyIcon-Komponente zur Entwurfszeit ein Kontextmenü zu

  1. Fügen Sie Ihrem Formular eine NotifyIcon-Komponente hinzu, und legen Sie die wichtigen Eigenschaften fest, z. B. die Eigenschaften Icon und Visible.

    Weitere Informationen finden Sie unter Vorgehensweise: Hinzufügen von Anwendungssymbolen zur Taskleiste mit der NotifyIcon-Komponente in Windows Forms.

  2. Fügen Sie Ihrem Windows-Formular eine ContextMenu-Komponente hinzu.

    Fügen Sie dem Kontextmenü Menüelemente hinzu, die die Befehle darstellen, die Sie zur Laufzeit verfügbar machen möchten. Dies ist auch ein guter Zeitpunkt, diese Menüelemente mit Optimierungen zu versehen, z. B. Tastenkombinationen.

  3. Legen Sie die ContextMenu-Eigenschaft der NotifyIcon-Komponente auf das von Ihnen hinzugefügte Kontextmenü fest.

    Wenn diese Eigenschaft festgelegt ist, wird das Kontextmenü angezeigt, sobald Sie auf der Taskleiste das Symbol klicken.

So ordnen Sie der NotifyIcon-Komponente programmgesteuert ein Kontextmenü zu

  1. Erstellen Sie eine Instanz der NotifyIcon-Klasse und eine ContextMenu-Klasse, mit den für die Anwendung erforderlichen Eigenschaftseinstellungen (Eigenschaften Icon und Visible für die NotifyIcon-Komponente, Menüelemente für die ContextMenu-Komponente).

  2. Legen Sie die ContextMenu-Eigenschaft der NotifyIcon-Komponente auf das von Ihnen hinzugefügte Kontextmenü fest.

    Wenn diese Eigenschaft festgelegt ist, wird das Kontextmenü angezeigt, sobald Sie auf der Taskleiste das Symbol klicken.

    Hinweis

    Im folgenden Codebeispiel wird eine einfache Menüstruktur erstellt. Sie müssen die Menüoptionen so anpassen, dass sie zur Anwendung passen, die Sie entwickeln. Zusätzlich sollten Sie Code schreiben, um die Click-Ereignisse für diese Menüelemente zu behandeln.

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

Hinweis

Sie müssen notifyIcon1 und contextMenu1, initialisieren. Dazu können Sie die folgenden Anweisungen in den Konstruktor Ihres Formulars einfügen:

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

Weitere Informationen