我有一个应用程序在托盘中使用NotifyIcon来隐藏/恢复应用程序,并向应用程序事件的用户弹出通知。我的应用程序有一个通知队列,我使用NotificationIcon.BalloonTipClosed事件来确定何时重置气球并显示下一个通知(如果队列中有一个)。如何判断系统托盘中的气球提示是否已关闭?
这种方法似乎在两种常见原因中都很有效(用户可以在气球超时时关闭气球,用户单击气球上的“X”强制气球关闭),但还有第三种情况,其中BalloonTipClosed不会“吨得到所谓:
- 通知气球弹出
- 虽然这是明显的,在通知图标用户单击右键,弹出快捷菜单,从而造成球囊消失
的BalloonTipClosed事件没有按”在这里触发实例 - 我认为这是一个框架中的错误(我使用2.0),但有没有人有这个想法?如果我没有得到这个事件,我的应用程序总是会认为有一个可见的气球(我有一个布尔值可以防止它一次显示多个气球),并且只要它正在运行,它就不会再显示另一个图标。
这里的问题是,虽然我可以捕获icon_click事件,我知道气球已经关闭了在这一点上,我我不确定何时显示下一个气球。立即显示它将覆盖用户在那里做的任何事情。我可以在点击后的延迟时间内完成此操作,但仍然需要一个计时器,所以我宁愿在所有情况下都使用计时器。 – SqlRyan 2009-06-08 20:48:08
好点。假设用户唯一可以在那里做的事情是激活一个上下文菜单,如果你处理菜单Opening和Closed事件,并且只在没有激活上下文菜单时才显示下一个气球。您可能还想根据用户选择的菜单项作出决定 – Bob 2009-06-09 05:28:29