【发布时间】:2010-08-26 09:58:16
【问题描述】:
我有一个退出到系统托盘 Notifyicon 的 Windows 窗体应用程序,我尝试调用 Application.Exit() 或 Me.Close() 来关闭程序。但两者都无法关闭程序。关闭它的正确方法是什么?
【问题讨论】:
标签: winforms
我有一个退出到系统托盘 Notifyicon 的 Windows 窗体应用程序,我尝试调用 Application.Exit() 或 Me.Close() 来关闭程序。但两者都无法关闭程序。关闭它的正确方法是什么?
【问题讨论】:
标签: winforms
' 最好在结束应用程序之前让系统托盘图标不可见,否则,当应用程序不再运行时,它可能会在托盘中逗留。
该位指的是通知区域(系统托盘)并没有真正轮询以确保与图标对应的句柄仍然存在。因此,如果某些东西没有正常退出或者没有清理它的通知图标,那么通知区域就不会意识到那个窗口句柄飞了鸡舍。
您之前可能已经看到过这种行为:有时您将鼠标悬停在通知区域上,一旦鼠标开始悬停在某个应用程序的图标上,您知道您已经退出了一段时间,通知区域就会显示“好吧,关闭我的嘴巴把我涂成红色,猜猜那个把手已经不在了”然后噗!删除图标。
但我关闭程序后,托盘图标仍然显示,所有功能都可用。在我看来,程序仍在运行。
是的,在我看来,您的应用程序仍在运行。请注意,Application.Exit() 不必成功 - 存在允许应用程序的其他部分取消请求的重载。所以这是需要检查的。
通知图标并不能真正让您的应用保持“活跃”,因为它没有消息泵在您的控制之下,就像以前一样。您的应用中的某些内容未退出。
希望能帮助您走上正轨!
【讨论】: