Das folgende Snippet ist eine Vorlage für eine Anwendung, die beim Start ein NotifyIcon mit Kontextmenü erzeugt, aber kein Form öffnet. Das Öffnen von Forms ist aber über das Kontextmenü nachträglich möglich.
NotifyIcons sind die kleinen Symbole unten rechts in der Taskleiste (Tray).
Damit eignet sich diese Vorlage für Anwendungen, bei denen das NotifyIcon und nicht die Forms im Vordergrund stehen.
using System;
using System.Windows.Forms;
using System.Drawing;
//*****************************************************************************
static class MyNotifyIconApplication
{
private static NotifyIcon notico;
//==========================================================================
public static void Main (string [] astrArg)
{
ContextMenu cm;
MenuItem miCurr;
int iIndex = 0;
// Kontextmenü erzeugen
cm = new ContextMenu ();
// Kontextmenüeinträge erzeugen
miCurr = new MenuItem ();
miCurr.Index = iIndex++;
miCurr.Text = "&Aktion 1"; // Eigenen Text einsetzen
miCurr.Click += new System.EventHandler (Action1Click);
cm.MenuItems.Add (miCurr);
// Kontextmenüeinträge erzeugen
miCurr = new MenuItem ();
miCurr.Index = iIndex++;
miCurr.Text = "&Beenden";
miCurr.Click += new System.EventHandler (ExitClick);
cm.MenuItems.Add (miCurr);
// NotifyIcon selbst erzeugen
notico = new NotifyIcon ();
notico.Icon = new Icon("smile.ico"); // Eigenes Icon einsetzen
notico.Text = "Doppelklick mich!"; // Eigenen Text einsetzen
notico.Visible = true;
notico.ContextMenu = cm;
notico.DoubleClick += new EventHandler (NotifyIconDoubleClick);
// Ohne Appplication.Run geht es nicht
Application.Run ();
}
//==========================================================================
private static void ExitClick (Object sender, EventArgs e)
{
notico.Dispose ();
Application.Exit ();
}
//==========================================================================
private static void Action1Click (Object sender, EventArgs e)
{
// nur als Beispiel:
// new MyForm ().Show ();
}
//==========================================================================
private static void NotifyIconDoubleClick (Object sender, EventArgs e)
{
// Was immer du willst
}
}
Abgelegt unter
NotifyIcon,
Tray,
Systemtray,
Statusbereich,
Taskbar,
Taskleiste,
Programmleiste,
Icon,
Symbol,
ContextMenu,
Kontextmenü,
Anwendung,
Programm,
Anwendungsrahmen,
Programmrahmen.
Kommentare zum Snippet