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

Tipp

MenuStrip und ContextMenuStrip ersetzen das MainMenu-Steuerelement und das ContextMenu-Steuerelement früherer Versionen und erweitern dieses um Funktionen, jedoch werden MainMenu und ContextMenu aus Gründen der Abwärtskompatibilität und, falls gewünscht, für die zukünftige Verwendung beibehalten.

Die NotifyIcon-Komponente in Windows Forms zeigt ein Symbol im Statusbereich der Taskleiste an. In der Regel können Sie in Anwendungen mit der rechten Maustaste auf das Symbol klicken, um Befehle an die durch das Symbol repräsentierte Anwendung zu senden. Sie können diese Funktionalität den Anwendungen hinzufügen, indem Sie der NotifyIcon-Komponente eine ContextMenu-Komponente zuordnen.

Tipp

Wenn die Anwendung beim Start minimiert und eine Instanz der NotifyIcon-Komponente in der Taskleiste angezeigt werden soll, legen Sie die WindowState-Eigenschaft des Hauptformulars auf Minimized fest, und stellen Sie sicher, dass die Visible-Eigenschaft der NotifyIcon-Komponente auf true festgelegt ist.

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

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

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

  2. Fügen Sie dem Windows Form eine ContextMenu-Komponente hinzu.

    Fügen Sie die Menüelemente zur Darstellung der Befehle, die zur Laufzeit verfügbar sein sollen, dem Kontextmenü hinzu. Zu diesem Zeitpunkt empfiehlt es sich, den Menüelementen Menüerweiterungen wie Zugriffstasten hinzuzufügen.

  3. Legen Sie die ContextMenu-Eigenschaft derNotifyIcon-Komponente auf das Kontextmenü fest, das Sie hinzugefügt haben.

    Wenn diese Eigenschaft festgelegt ist, wird das Kontextmenü jedes Mal angezeigt, wenn in der Taskleiste auf das Symbol geklickt wird.

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

  1. Erstellen Sie eine Instanz der NotifyIcon-Klasse und eine ContextMenu-Klasse mit den Eigenschafteneinstellungen, die für die Anwendung erforderlich sind (die Icon-Eigenschaft und Visible-Eigenschaft für die NotifyIcon-Komponente, Menüelemente für die ContextMenu-Komponente).

  2. Legen Sie die ContextMenu-Eigenschaft derNotifyIcon-Komponente auf das Kontextmenü fest, das Sie hinzugefügt haben.

    Wenn diese Eigenschaft festgelegt ist, wird das Kontextmenü jedes Mal angezeigt, wenn in der Taskleiste auf das Symbol geklickt wird.

    Tipp

    Mit dem folgenden Codebeispiel wird eine grundlegende Menüstruktur erstellt. Sie müssen die Menüoptionen an die Optionen der von Ihnen entwickelten Anwendung anpassen. Zusätzlich können Sie Code zum Behandeln der Click-Ereignisse für diese Menüelemente schreiben.

    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 NotifyIcon notifyIcon1 = new NotifyIcon();
public ContextMenu contextMenu1 = new ContextMenu();

public void createIconMenuStructure()
{
   // Add menu items to shortcut menu.
   contextMenu1.get_MenuItems().Add("&Open Application");
   contextMenu1.get_MenuItems().Add("S&uspend Application");
   contextMenu1.get_MenuItems().Add("E&xit");

   // Set properties of NotifyIcon component.
   notifyIcon1.set_Icon(new System.Drawing.Icon
      (System.Environment.GetFolderPath
      (System.Environment.SpecialFolder.Personal)
      + "\\Icon.ico"));
   notifyIcon1.set_Text("Right-click me!");
   notifyIcon1.set_Visible(true);
   notifyIcon1.set_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;
   }

Tipp

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

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

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen von Anwendungssymbolen zur Taskleiste mit der NotifyIcon-Komponente in Windows Forms

Referenz

Übersicht über die NotifyIcon-Komponente (Windows Forms)

NotifyIcon

Icon

Weitere Ressourcen

NotifyIcon-Komponente (Windows Forms)