Comment démarrer l’application directement dans la barre d’état système? (.NET C #)

Je veux dire quand l’utilisateur démarre mon application (exe). Je veux qu’il démarre directement dans la barre d’état système, sans afficher la fenêtre. Comme les logiciels antivirus et les gestionnaires de téléchargement, qui démarrent et s’exécutent dans la barre d’état système en mode silencieux.

Je veux le même effet et lorsque l’utilisateur clique sur le bouton “Afficher” du contextmenussortingp de notifyIcon, seule l’application doit afficher l’interface graphique.

J’utilise ça, mais ça ne marche pas

private void Form_Load(object sender, EventArgs e) { this.Hide(); } 

Peut-être ai-je besoin d’avoir la fonction Main () dans une autre classe qui n’a pas d’interface graphique, mais notifyIcon & ContextMenuSsortingp dont l’option instanciera la classe de fenêtre d’interface graphique. Droite?

La façon dont je configure habituellement quelque chose comme ceci est de modifier le Program.cs afin qu’il ressemble à ce qui suit:

  [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); using (NotifyIcon icon = new NotifyIcon()) { icon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(Application.ExecutablePath); icon.ContextMenu = new ContextMenu(new MenuItem[] { new MenuItem("Show form", (s, e) => {new Form1().Show();}), new MenuItem("Exit", (s, e) => { Application.Exit(); }), }); icon.Visible = true; Application.Run(); icon.Visible = false; } } 

En utilisant ceci, vous n’avez pas besoin de vous inquiéter de cacher au lieu de fermer les formulaires et de tous les autres hacks pouvant mener à … Vous pouvez aussi créer un formulaire singleton au lieu d’instancier un nouveau Form chaque fois que vous cliquez sur le formulaire d’affichage. option. C’est quelque chose dont il faut tirer parti, pas la solution finale.

Vous devez également configurer l’icône de notification.

Soit manuellement, soit via la barre d’outils (faites glisser un notifyIcon sur votre formulaire), créez le notifyIcon:

 this.notifyIcon = new System.Windows.Forms.NotifyIcon(components); 

Ajoutez ensuite ce code à Form_Load() :

 // Notify icon set up notifyIcon.Visible = true; notifyIcon.Text = "Tooltip message here"; this.ShowInTaskbar = false; this.Hide(); 

Comme cela a été souligné, montrera brièvement le formulaire avant de le cacher.

De la réponse acceptée à cette question , la solution semble être de changer:

 Application.Run(new Form1()); 

à:

 Form1 f = new Form1(); Application.Run(); 

dans Main() .

Avez-vous créé une application Windows en C #? Vous devez faire glisser un contrôle NotifyIcon sur le formulaire. Le contrôle sera placé sous le formulaire car il n’a aucune représentation visuelle sur le formulaire.

Ensuite, vous définissez ses propriétés telles que l’icône …

Essayez celui-ci en premier …