Rac*_*hel 6 .net c# notifyicon .net-3.5 winforms
我们使用a NotifyIcon在用户收到需要他们注意的新消息时提醒用户.如果其他人首先收到消息,则通知图标应该再次隐藏,但是我在查找如何从后面的代码中关闭气球时遇到问题.
我的代码看起来像这样:
myNotifyIcon.ShowBalloonTip(2000, title, message, icon);
Run Code Online (Sandbox Code Playgroud)
我尝试过这里的建议,但没有一个是合适的.
使用myNotifyIcon.Visible = true不会隐藏它
使用myNotifyIcon.Visible = false; myNotifyIcon.Visible = true;将隐藏它,但它也隐藏了托盘中的图标,当它再次显示时,它会显示一个不同的位置.
myNotifyIcon.Show(0) 不是一个有效的方法
myNotifyIcon.ShowBalloonTip(0)或者myNotifyIcon.ShowBalloonTip(1)似乎不起作用,因为气球只是显示出来并且似乎根本不会自行消失.
我看了这个问题,有关使用WinAPI的查找窗口,并发送一个WM_CLOSE消息,但我也不太清楚该怎么做可靠.
如何关闭NotifyIcon后面的代码?
我从来没有找到一种非 hacky 的方法来做到这一点。文档说:
最小和最大超时值由操作系统强制执行,通常分别为 10 秒和 30 秒,但这可能会因操作系统而异。太大或太小的超时值将调整为适当的最小值或最大值。
尽管这并没有具体解决显式关闭气球的问题,但它向我表明,一旦显示气球,ShowBalloonTip() 方法的调用者就无法完全控制气球。
我发现的最好的选择是你已经提到的一个:
myNotifyIcon.Visible = false;
myNotifyIcon.Visible = true;
Run Code Online (Sandbox Code Playgroud)
不理想,但它有效。另一个想法是更改气球中显示的消息以指示先前的消息已过时:
myNotifyIcon.ShowBalloonTip(2000, "Title", "Never mind!", ToolTipIcon.Info);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |