如果我在Visual Studio

时间:2017-06-20 19:24:49

标签: c# 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是最新的。

编辑 - 基本上我有一个表单,我点击托盘图标打开,并期望点击桌面或某些应该触发停用事件,这是没有发生的。不知道为什么。 :(

3 个答案:

答案 0 :(得分:1)

您需要在发行版中编译代码以更新.exe!

编辑:也许这link可以帮助你

答案 1 :(得分:0)

感谢大家的帮助。

调出以下方法后,弹出显示解决了我的问题。

notifyForm.Activate();

再次感谢。

答案 2 :(得分:-1)

因为VS在一个不错的调试环境中运行代码。即使在发布模式。与在调试器外部运行时相比,它使引用保持更长时间。

将notifyForm存储在可能会在调用时停用的作用域中。最简单的是一个类变量。