我有一个 .Net 3.5 C# Winforms 应用程序。它没有这样的 GUI,只有一个带有 ContextMenu 的 NotifyIcon。
我尝试将 NotifyIcon 设置为 visible=false 并在 Application_Exit 事件中处理它,如下所示:
if (notifyIcon != null)
{
notifyIcon.Visible = false;
notifyIcon.Dispose();
}
应用程序会访问括号内的代码,但在尝试设置 Visible = false 时会引发 null ref 异常。
我已经在几个地方阅读了将其放入表单关闭事件的内容,但该代码永远不会被击中(也许是因为我没有显示这样的表单?)。
我可以把这段代码放在哪里让它真正起作用?如果我不把它放进去,我会在托盘中看到令人讨厌的挥之不去的图标,直到你将鼠标移到它上面。
干杯。
编辑
只是我注意到了一些额外的东西............
我在应用程序中使用 ClickOnce .........如果我只是通过 NotifyIcon 上的 ContextMenu 退出应用程序,则不会记录任何异常。
就在应用程序在此处检查升级后触发 Application_Exit 事件时..
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();
}
}
这有帮助吗?