Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NotifyIcon remains in Tray even after application closing but disappears on Mouse Hover

Tags:

c#

notifyicon

There are many questions on SO asking same doubt. Solution for this is to set

notifyIcon.icon = null and calling Dispose for it in FormClosing event.

In my application, there is no such form but has Notification icon which updates on Events. On creation, I hide my form and make ShowInTaskbar property false. Hence I can not have a "FormClosing" or "FormClosed" events.

If this application gets event to exit, It calls Process.GetCurrentProcess().Kill(); to exit.

I have added notifyIcon.icon = null as well as Dispose before killing, but still icon remains taskbar until I hover mouse over it.

EDIT: If I assume that this behaviour is due to calling GetCurrentProcess().Kill(), Is there any elegant way to exit from application which will clear all resources and remove icon from system tray.

like image 264
Swanand Avatar asked Feb 06 '13 07:02

Swanand


2 Answers

You can either set

notifyIcon1.Visible = false;

OR

notifyIcon.Icon = null;

in the form closing event.

like image 127
Jason Dias Avatar answered Nov 03 '22 18:11

Jason Dias


The only solution that worked for me was to use the Closed event and hide and dispose of the icon.

icon.BalloonTipClosed += (sender, e) => { 
                                            var thisIcon = (NotifyIcon)sender;
                                            thisIcon.Visible = false;
                                            thisIcon.Dispose(); 
                                        };
like image 21
The Muffin Man Avatar answered Nov 03 '22 19:11

The Muffin Man