myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » [Snippet] Vorlage für Tray-/NotifyIcon-Anwendung
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

[Snippet] Vorlage für Tray-/NotifyIcon-Anwendung

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
herbivore
myCSharp.de-Poweruser/ Experte

avatar-2627.gif


Dabei seit: 11.01.2005
Beiträge: 49.479
Entwicklungsumgebung: csc/nmake (nothing is faster)
Herkunft: Berlin


herbivore ist offline

[Snippet] Vorlage für Tray-/NotifyIcon-Anwendung

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Beschreibung:

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.

C#-Code:
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
   }
}

Schlagwörter: NotifyIcon, Tray, Systemtray, Statusbereich, Taskbar, Taskleiste, Programmleiste, Icon, Symbol, ContextMenu, Kontextmenü, Anwendung, Programm, Anwendungsrahmen, Programmrahmen, 1000 Worte

Quelle: myCSharp.de

Siehe auch:  [Artikel] Windows Tray Applikationen (NotifyIcon)
13.05.2007 11:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 11 Monate.
tamilsuriyan tamilsuriyan ist männlich
myCSharp.de-Mitglied

Dabei seit: 07.12.2007
Beiträge: 35


tamilsuriyan ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,
ich hab es gestestet. Wie bekomme ich die Konsole weg. Ich will das nur Systemtray aktiv ist und das es beim Drücken eine Fenster aufgeht. Die Konsole am Anfang stört mich. Wie kann ich es verhindern?

Ist es möglich das man mit dem Maus auf dem Icon drauf kann und dabei das Fenster sich öffnet. Und wenn man von dem Icon weg ist dann soll das Fenster auch verschwinden.

Thx
18.04.2008 13:24 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
herbivore
myCSharp.de-Poweruser/ Experte

avatar-2627.gif


Dabei seit: 11.01.2005
Beiträge: 49.479
Entwicklungsumgebung: csc/nmake (nothing is faster)
Herkunft: Berlin

Themenstarter Thema begonnen von herbivore

herbivore ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo tamilsuriyan,

Zitat:
Wie bekomme ich die Konsole weg.

du musst den Zieltyp natürlich auf Windows-Forms einstellen (/target:winexe).

Zitat:
Ist es möglich das man mit dem Maus auf dem Icon drauf kann und dabei das Fenster sich öffnet. Und wenn man von dem Icon weg ist dann soll das Fenster auch verschwinden.

Einblenden kannst du das Fenster, immer wenn NotifyIcon.MouseMove kommt. Das Problem ist eher, dass du nicht mitbekommst, wann die Maus das NotifyIcon verlässt. Du könntest das Fenster aber zeitgesteuert ausblenden.

herbivore
18.04.2008 13:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 5 Monate.
Stipo Stipo ist männlich
myCSharp.de-Mitglied

avatar-2966.gif


Dabei seit: 09.04.2007
Beiträge: 699
Entwicklungsumgebung: VS 2010 Pro, Blend 4
Herkunft: Lörrach


Stipo ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo herbivore,

wie kann ich eigentlich in deinem Notify oben einen Separator einbauen?
Suche mich da schon die ganze Zeit dumm und dappig, aber bin wohl zu blöd das zu finden.

Grüße Stephan
03.10.2008 21:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
zero_x zero_x ist männlich
myCSharp.de-Mitglied

avatar-2567.gif


Dabei seit: 16.02.2008
Beiträge: 1.044
Herkunft: Koblenz


zero_x ist offline Füge zero_x Deiner Kontaktliste hinzu

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Stipo,

du kannst einen Separator mit dem Binde- oder Minusstrich erzeugen. Dazu musst du einen Eintrag mit einfach einem "-" hinzufügen. Hier ein Beispiel:

C#-Code:
        // Einen Separator erzeugen      
        miCurr = new MenuItem();
        miCurr.Index = iIndex++;
        miCurr.Text = "-";
        miCurr.Click += new System.EventHandler(ExitClick);
        cm.MenuItems.Add(miCurr);

zero_x

P.S.: Sollte deine Frage eigentlich nicht besser hier:  GUI: Windows-Forms stellen?
03.10.2008 22:35 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Stipo Stipo ist männlich
myCSharp.de-Mitglied

avatar-2966.gif


Dabei seit: 09.04.2007
Beiträge: 699
Entwicklungsumgebung: VS 2010 Pro, Blend 4
Herkunft: Lörrach


Stipo ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zero_x,

danke für das Beispiel. Das hat mir geholfen. Wäre wohl nie drauf gekommen, das es so einfach ist Augenzwinkern Hatte schon die ganze MSDN auf den Kopf gestellt.

Grüße Stephan

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Stipo am 03.10.2008 22:40.

03.10.2008 22:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 13 Jahre.
Der letzte Beitrag ist älter als 12 Jahre.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 31.10.2020 21:00