我的Windows应用程序中有以下代码行。
下面是点击托盘图标点击时触发的代码,NotifyForm是正常的Windows窗体。
ExceptionManager.Process(
() =>
{
if (notifyForm == null)
{
notifyForm = new NotifyForm();
notifyForm.Deactivate += (o, args) =>
{
notifyForm.Close();
};
notifyForm.Disposed += (o, args) =>
{
notifyForm = null;
};
}
if (!notifyForm.Visible)
{
notifyForm.ShowPopup();
}
else
{
notifyForm.Close();
}
}, "Policy");
表单正在关闭,当我通过Visual Studio运行时,如果我导航到Release文件夹并显式运行exe,则Deactivate事件永远不会触发。对此的帮助非常感谢。
仅供参考,notifyForm是一个通知弹出窗口,显示在托盘上方,点击托盘图标。
另外,我尝试通过visual studio在发布模式下运行应用程序,它运行正常。当我在工作室之外运行时,只会出现问题。
我已经验证了exe是最新的。
编辑 - 基本上我有一个表单,我点击托盘图标打开,并期望点击桌面或某些应该触发停用事件,这是没有发生的。不知道为什么。 :(
答案 0 :(得分:1)
您需要在发行版中编译代码以更新.exe!
编辑:也许这link可以帮助你
答案 1 :(得分:0)
感谢大家的帮助。
调出以下方法后,弹出显示解决了我的问题。
notifyForm.Activate();
再次感谢。
答案 2 :(得分:-1)
因为VS在一个不错的调试环境中运行代码。即使在发布模式。与在调试器外部运行时相比,它使引用保持更长时间。
将notifyForm存储在可能会在调用时停用的作用域中。最简单的是一个类变量。