vb.net - 如何判断系统托盘中的气球提示是否已关闭?

标签 vb.net notifyicon balloon

我有一个应用程序,它使用托盘中的 NotifyIcon 来隐藏/恢复应用程序,并向用户弹出应用程序事件通知。我的应用程序有一个通知队列,我使用NotificationIcon.BalloonTipClosed 事件来确定何时重置气球并显示下一个通知(如果队列中有一个)。

此方法似乎在两种常见原因中都很有效(用户让气球在超时时自行关闭,并且用户单击气球中的“X”以强制其关闭),但还有第三种情况,BalloonTipClosed 不会接到电话:

  1. 弹出通知气球
  2. 当它可见时,用户右键单击通知图标以调出上下文菜单,导致气球消失

在这种情况下,BalloonTipClosed 事件不会被触发 - 我认为这是框架中的一个错误(我使用的是 2.0),但是有人对此有任何想法吗?如果我没有收到此事件,我的应用程序总是认为有一个可见的气球(我有一个 bool 值可以防止它同时显示多个气球),并且只要它正在运行,它就永远不会再显示另一个图标。

最佳答案

这属于对 Aarons 答案的评论,但我还不能发表评论。

如果您处理 NotifyIcon 上的 BalloonTipClicked 和 MouseClick 事件(以及 BalloonTipClosed),那么您可以捕获气球关闭的所有方式。您唯一需要注意的是,多个场景将触发多个事件,因此请务必围绕该事件进行编码(例如 isClosed = true,然后在显示新气球时重置它)。

关于vb.net - 如何判断系统托盘中的气球提示是否已关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923665/

相关文章:

vb.net - 如何在VB.NET中写入 'not greater than zero'

c# - 在 .NET 哈希表(或其他结构)中获取最接近/下一个匹配项

c# - 在 C# 中重绘气球提示和工具提示?

Delphi:CoolTrayIcon 的 ShowBalloonHint 不起作用

c# - 有没有办法让气球提示永远不会关闭?

.net - 将 SSRS .RDL 渲染为 PDF 并打开它

javascript - 在 JavaScript 函数中找不到 Hiddenfield 的值

c# - WPF NotifyIcon - 隐藏托盘弹出窗口

c# - 添加通知图标后应用程序将不会在启动时启动

c# - 有多个工具提示/弹出窗口整齐地堆叠在 Windows 系统托盘区域,类似于 Messenger/反病毒通知