我有一个应用程序,它使用托盘中的 NotifyIcon 来隐藏/恢复应用程序,并向用户弹出应用程序事件通知。我的应用程序有一个通知队列,我使用NotificationIcon.BalloonTipClosed 事件来确定何时重置气球并显示下一个通知(如果队列中有一个)。
此方法似乎在两种常见原因中都很有效(用户让气球在超时时自行关闭,并且用户单击气球中的“X”以强制其关闭),但还有第三种情况,BalloonTipClosed 不会接到电话:
- 弹出通知气球
- 当它可见时,用户右键单击通知图标以调出上下文菜单,导致气球消失
在这种情况下,BalloonTipClosed 事件不会被触发 - 我认为这是框架中的一个错误(我使用的是 2.0),但是有人对此有任何想法吗?如果我没有收到此事件,我的应用程序总是认为有一个可见的气球(我有一个 bool 值可以防止它同时显示多个气球),并且只要它正在运行,它就永远不会再显示另一个图标。
最佳答案
这属于对 Aarons 答案的评论,但我还不能发表评论。
如果您处理 NotifyIcon 上的 BalloonTipClicked 和 MouseClick 事件(以及 BalloonTipClosed),那么您可以捕获气球关闭的所有方式。您唯一需要注意的是,多个场景将触发多个事件,因此请务必围绕该事件进行编码(例如 isClosed = true,然后在显示新气球时重置它)。
关于vb.net - 如何判断系统托盘中的气球提示是否已关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923665/