2013-04-04 2 views
1

j'écrire sur un petit outil qui devrait regarder mon serveur un me écrire mails quand quelque chose a mal tourné comme trop élevé utilisation de ram etc ...C# plantages du programme/ferme sur minimiser dans la barre système

maintenant à mon problème, Je veux réduire mon programme à la barre d'état système et cela fonctionne bien :) Je vois pendant quelques secondes l'icône dans le bac. après que mon programme est parti ... fermé ... ne sais pas le processus est parti: D.

Voici mon code pour réduire dans la barre:

InitializeComponent(); 
var icon = new NotifyIcon(); 
icon.Icon = new Icon("watchdog.ico"); 
icon.Visible = true; 
icon.DoubleClick += 
     delegate(object sender, EventArgs args) 
     { 
      this.Show(); 
      this.WindowState = WindowState.Normal; 
     }; 

protected override void OnStateChanged(EventArgs e) 
     { 
      if (WindowState == WindowState.Minimized) 
       this.Hide(); 

      base.OnStateChanged(e); 
     } 

J'espère que u peut me aider.

+2

Sans une exception réelle, il est difficile de dire ce qui se passe. Vous devez attacher un débogueur et interrompre les exceptions. –

+2

OK, avez-vous essayé le débogage et obtenu une sorte d'exception? Si vous ne pouvez pas faire cela, implémentez une sorte d'outil de journalisation. Avoir une trace de pile et un message d'erreur aidera beaucoup à comprendre cela. – tnw

+1

Vous devriez avoir un indice sur ce qui s'est passé dans l'Observateur d'événements. – Aybe

Répondre

0

Sur Server 2012, je recevais également une exception lors de la minimisation dans le bac, mais cela fonctionnerait correctement sur les ordinateurs Windows 7 Pro. Après avoir été en mesure de déboguer à distance le problème était tout à fait clair:

Exception lancée: « System.ArgumentException » dans System.Windows.Forms.dll

Informations complémentaires: texte pointe ballon doit avoir un non valeur vide.

Le correctif est d'ajouter du texte de infobulle de l'icône:

var icon = new NotifyIcon(); 
icon.BalloonTipText = "Program is minimized. Click the tray icon to restore it."; 
Questions connexes