Laden...

TrayIcon - bei Linksklick aufpoppender "Layer"?

Erstellt von voodoo44 vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.769 Views
V
voodoo44 Themenstarter:in
82 Beiträge seit 2008
vor 11 Jahren
TrayIcon - bei Linksklick aufpoppender "Layer"?

Hallo Leute,

ich bin aktuell daran ein neues Projekt umzusetzen. Das Programm soll quasi nur als TrayIcon laufen - und beim Klicken darauf, soll sich eine Art "Layer" öffnen, der weiterführende Informationen enthält.

Die weiterführenden Informationen sind an sich überhaupt kein Problem, das habe ich im Griff und das funktioniert in einer extra Windows-Forms Anwendung bereits problemlos.

Nun möchte ich gerne den Part mit dem TrayIcon umsetzen. Das kann man ja praktischerweise auch ganz toll direkt im VS aktivieren. Jetzt will ich aber wissen, wie ich sowas hinbekomme:
FreeSpaceTab: eingebundene Laufwerke im Blick
Mir geht es dabei um das Verhalten auf dem Screenshot. Wenn ich auf mein TrayIcon klicke, soll sich mein "Layer" (Windows Form?) öffnen und quasi unten am TrayIcon "andocken". Bei erneutem Klicken (oder klicken neben das Fenster) soll sich der "Layer" wieder schließen. Wichtig ist hier eben, dass da kein extra Fenster irgendwo aufgeht auf dem Bildschirm (und auch, dass man es nicht verschieben kann) - es soll schlichtweg so "angedockt" bleiben wie der Layer auf dem verlinkten Screenshot.

Wie macht man denn sowas?

C
1.214 Beiträge seit 2006
vor 11 Jahren

Ja, du machst einfach eine entsprechende Form ohne Rahmen etc., und setzt sie an die richtige Position.

V
voodoo44 Themenstarter:in
82 Beiträge seit 2008
vor 11 Jahren

Das heißt, dass es dafür keine vorgefertigten Methoden oder Properties gibt?
Zumal sich die Position des Icons ja stetig verändern kann. Woher bekomme ich denn die Eigenschaft der Position des TrayIcons?

156 Beiträge seit 2010
vor 11 Jahren

Moin,

versuch mal ein ContexMenü. Das Menü nimmt ToolStripItems entgegen. ToolStripItem erbt (direkt) von Component. Label, ProgressBar und PictureBox erben von Control, welches wiederum von Component erbt. Somit sollte das ContextMenü die entsprechenden Element selber enthalten können.

Quasi ein Control mit ein paar Label, ein Bild und einem ProgressBar (für die Kapazität). Und das Control dann dem ContextMenü hinzufügen.

hand, mogel

49.485 Beiträge seit 2005
vor 11 Jahren

Hallo voodoo44,

ich denke auch, dass das (mal abgesehen davon dass der Screenshot von einem Mac ist) einfach das (Kontext-)Menü ist, das ein NotifyIcon standardmäßig besitzt (besitzen kann) und (zumindest bei Rechtsklick) auch automatisch anzeigt. Damit entfällt die Notwendigkeit, ein eigenes Form zu erstellen und zu positionieren.

Wenn du Informationen darstellen willst, die nicht rein textuell sind, kannst du das MenuItem.DrawItem-Ereignis verwenden. Siehe auch [Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox).

herbivore