Problema com o NotifyIcon não desaparecendo no aplicativo Winforms
Eu tenho um aplicativo .net 3.5 C # Winforms. Não tem GUI como tal, apenas um NotifyIcon com um ContextMenu.
Eu tentei definir o NotifyIcon para visible = false e descartá-lo no evento Application_Exit, da seguinte maneira:
if (notifyIcon != null)
{
notifyIcon.Visible = false;
notifyIcon.Dispose();
}
O aplicativo chega ao código dentro dos colchetes, mas lança uma exceção de referência nula quando tenta definir Visible = false.
Eu li em alguns lugares para colocá-lo no evento de fechamento de formulário, mas esse código nunca é atingido (talvez como eu não tenho um formulário mostrando como tal?).
Onde posso colocar este código para que funcione realmente? Se eu não colocá-lo, recebo o ícone persistente e chato na bandeja até que você passe o mouse sobre ele.
Felicidades.
EDITAR
Apenas algo extra eu notei ...........
Estou usando o ClickOnce no aplicativo ......... se eu apenas sair do aplicativo por meio do ContextMenu no NotifyIcon, nenhuma exceção será registrada.
Apenas quando o evento Application_Exit é disparado depois que o aplicativo foi verificado para uma atualização aqui ..
private void CheckForUpdate()
{
EventLogger.Instance.LogEvent("Checking for Update");
if (ApplicationDeployment.IsNetworkDeployed && ApplicationDeployment.CurrentDeployment.CheckForUpdate())
{
EventLogger.Instance.LogEvent("Update available - updating");
ApplicationDeployment.CurrentDeployment.Update();
Application.Restart();
}
}
Isso ajuda?