[英]Deactivate event not firing if i run exe outside Visual Studio
我的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是最新的。
编辑-基本上,我有一个窗体,该窗体是在单击任务栏图标时打开的,并且希望单击桌面或某些应触发停用事件的窗体,这种情况不会发生。 不知道为什么。 :(
您需要在发行版中编译代码以更新.exe!
编辑:也许此链接可以帮助您
感谢你的帮助。
调用下面的方法,在弹出后解决了我的问题。
notifyForm.Activate();
再次感谢。
因为VS在一个不错的调试环境中运行代码。 即使在发布模式下。 与在调试器外部运行相比,它可使引用的生存期更长。
可能会调用将notifyForm存储在停用时仍处于活动状态的范围内。 最简单的是一个类变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.