我有一个 Windows 窗体应用程序,它退出到系统托盘 Notifyicon,并且我尝试调用 Application.Exit() 或 Me.Close() 来关闭该程序。但两者都无法关闭该程序。关闭它的正确方法是什么?
最好在结束应用程序之前使系统托盘图标不可见,否则,当应用程序不再运行时,它可能会在托盘中徘徊。
该位指的是通知区域(系统托盘)并没有真正轮询以确保与图标相对应的句柄仍然存在。因此,如果某些内容没有正常退出或没有清理其通知图标,则通知区域不会意识到该窗口句柄已飞出笼子。
您以前可能见过这种行为:有时您将鼠标悬停在通知区域上,一旦鼠标开始悬停在您知道您不久前退出的应用程序的图标上,通知区域就会显示“好吧,闭上我的嘴,画画”我红了,猜猜那个手柄已经不在了”然后噗!删除图标。
但是当我关闭程序后,托盘图标仍然显示并且所有功能都可用。在我看来该程序仍在运行。
是的,在我看来你的应用程序仍在运行。请注意,这Application.Exit()
并不一定要成功——存在过载,允许应用程序的其他部分取消请求。所以这是需要检查的事情。
通知图标并不能真正让您的应用程序保持“活力”,因为它没有受您控制的消息泵。您的应用程序中的某些内容未退出。
希望这有助于您走上正轨!