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
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.
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.
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
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).
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
Referenz
Übersicht über die NotifyIcon-Komponente (Windows Forms)