2016-05-04 27 views
0

Diese Frage anders als die anderen, weil ich schon ihre Lösungen ausprobiert:NotifyIcon nicht angezeigt wird, auch nach sichtbar = true

  • visible=true;
  • Ballon Tipps auch nicht zeigen;
  • und es ist nicht in der "erweiterte Symbole" Abschnitt der Systemleiste (oder was auch immer heißt, wo versteckte Symbole gehen).

Der Code, aus einer Reihe von verschiedenen Antworten genommen über SO und an anderen Orten (sagen sie alle gleich):

private void mainform_Resize(object sender, EventArgs e) 
    { 
     if (FormWindowState.Minimized == this.WindowState) 
     { 
      notifyIcon.Visible = true; 
      notifyIcon.ShowBalloonTip(500, "test title", "test message", ToolTipIcon.Info); 
      this.Hide(); 
     } 
     else if (FormWindowState.Normal == this.WindowState) 
     { 
      notifyIcon.Visible = false; 
     } 
    } 

Erwartetes Ergebnis: Symbol zeigt in der Taskleiste. Tatsächliches Ergebnis: nichts passiert, nur das Fenster verschwindet gemäß this.Hide();.

Antwort

0

Was niemand erwähnt, ist, dass ein Symbol obligatorisch ist. Nach fast einer Stunde Suche entschied ich, dass ich versuchen würde, ihm ein zufälliges Icon zu geben und Everything zu verwenden, um nach einer zufälligen .ico-Datei auf meinem System zu suchen. Und siehe, das macht das Symbol angezeigt:

Offenbar ohne Symbol ist der Standardwert stillschweigend fehlschlagen. Es gibt weder ein Standard-Icon, noch wird eine leere Kachel angezeigt, sie ignoriert Sie komplett.

Bonus: Wenn Sie Ihre Form das Symbol verwenden möchten, können Sie:

notifyIcon.Icon = this.Icon; 
+0

Nun NotifyIcon ist für die Taskleiste. ;) Kein Symbol = kein System-Tray-Objekt – TyCobb

+0

@TyCobb Ich stimme zu, außer: Das Formular hat standardmäßig ein Symbol, warum nicht das System-Tray? Und wenn es keine Standardeinstellung hat, sollte es eine Art Ausnahme (oder zumindest Warnung!) Auslösen, wenn es nicht gesetzt ist. Es weiß, dass Sie versuchen, es anzuzeigen ("sichtbar = wahr") und es weiß, dass es nicht (kein Symbol) kann. – Luc