Que dois-je faire pour exécuter une application Windows Forms dans la barre d'état système?
Pas une application qui peut être réduite dans le bac, mais une qui n'existe que dans le bac, avec rien de plus qu'une icône, une info-bulle et un menu "clic droit".
icon.Visible = false
, puisDispose()
l'icône lorsque vous quittez votre application. Sinon, vous verrez toujours l'icône après la fin de votre programme. Après l'avoir testé plusieurs fois, vous ne saurez plus quelle icône est réelle.Réponses:
L'article de projet de code Création d'une application Tasktray donne une explication très simple et un exemple de création d'une application qui n'existe que dans la barre d'état système.
Modifiez simplement la
Application.Run(new Form1());
ligneProgram.cs
pour démarrer une classe qui hérite deApplicationContext
et que le constructeur de cette classe initialise unNotifyIcon
la source
Comme le dit mat1t - vous devez ajouter un NotifyIcon à votre application, puis utiliser quelque chose comme le code suivant pour définir l'info-bulle et le menu contextuel:
Ce code affiche l'icône dans la barre d'état système uniquement:
Les éléments suivants seront nécessaires si vous avez un formulaire (pour une raison quelconque):
Le clic droit pour obtenir le menu contextuel est géré automatiquement, mais si vous souhaitez effectuer une action sur un clic gauche, vous devrez ajouter un gestionnaire de clic:
la source
J'ai écrit une application de barre d'outils avec .NET 1.1 et je n'avais pas besoin d'un formulaire.
Tout d'abord, définissez l'objet de démarrage du projet en tant que Sub
Main
, défini dans un module.Créez ensuite par programmation les composants: les
NotifyIcon
etContextMenu
.Assurez-vous d'inclure un
MenuItem
"Quitter" ou similaire.Liez le
ContextMenu
àNotifyIcon
.Invoquez
Application.Run()
.Dans le gestionnaire d'événements pour Quit,
MenuItem
assurez-vous d'appeler setNotifyIcon.Visible = False
, alorsApplication.Exit()
. Ajoutez ce dont vous avez besoinContextMenu
et manipulez correctement :)la source
Form1
du code.Form1
.NotifyIcon
classe pour créer l'icône de la barre d'état système (attribuez-lui une icône).NotifyIcon
clic de souris et faites la différence entre le clic droit et le clic gauche, en définissant votre menu contextuel et en lui montrant pour quel bouton (droit / gauche) vous avez appuyé.Application.Run()
pour continuer à utiliser l'applicationApplication.Exit()
pour quitter. Ou abool bRunning = true; while(bRunning){Application.DoEvents(); Thread.Sleep(10);}
. Ensuite, configurezbRunning = false;
pour quitter l'application.la source
L'application "Barre d'état système" est juste une application régulière de formulaires gagnants, la seule différence est qu'elle crée une icône dans la zone de la barre d'état système de Windows. Afin de créer une icône sys.tray, utilisez le composant NotifyIcon, vous pouvez le trouver dans la boîte à outils (contrôles communs) et modifier ses propriétés: icône, infobulle. Il vous permet également de gérer les messages de clic de souris et de double-clic.
Et encore une chose, afin d'obtenir l'apparence et la sensation ou l'application de plateau standard. ajoutez des lignes de suivi sur votre événement principal de présentation de formulaire:
la source
Pour autant que je sache, vous devez toujours écrire l'application à l'aide d'un formulaire, mais ne pas avoir de contrôle sur le formulaire et ne jamais le rendre visible. Utilisez NotifyIcon (dont vous trouverez un exemple MSDN ici ) pour rédiger votre application.
la source
Voici comment je l'ai fait avec Visual Studio 2010 , .NET 4
la source
C'est un cadre très convivial pour l'application de zone de notification ... il suffit d'ajouter NotificationIcon au formulaire de base et de changer le code généré automatiquement en code ci-dessous:
la source
Ajoutez simplement
à votre objet de formulaire. Vous ne verrez qu'une icône dans la barre d'état système.
la source