簡體   English   中英

如何從代碼中關閉NotifyIcon BallonToolTip?

[英]How can I close a NotifyIcon BallonToolTip from code?

我們正在使用NotifyIcon在用戶收到需要他們注意的新消息時提醒用戶。 如果其他人首先收到消息,則通知圖標應該再次隱藏,但是我在查找如何從后面的代碼中關閉氣球時遇到問題。

我的代碼看起來像這樣:

myNotifyIcon.ShowBalloonTip(2000, title, message, icon);

我嘗試過這里的建議,但沒有一個是合適的。

  • 使用myNotifyIcon.Visible = true不會隱藏它

  • 使用myNotifyIcon.Visible = false; myNotifyIcon.Visible = true; myNotifyIcon.Visible = false; myNotifyIcon.Visible = true; 將隱藏它,但它也隱藏了托盤中的圖標,當它再次顯示時,它會顯示一個不同的位置。

  • myNotifyIcon.Show(0)不是有效的方法

  • myNotifyIcon.ShowBalloonTip(0)myNotifyIcon.ShowBalloonTip(1)似乎不起作用,因為氣球剛剛顯示,並且似乎根本不會消失。

我看了這個問題,有關使用WinAPI的查找窗口,並發送一個WM_CLOSE消息,但我也不太清楚該怎么做可靠。

如何從后面的代碼中關閉NotifyIcon

我從來沒有找到一種非黑客的方式來做到這一點。 文件說:

最小和最大超時值由操作系統強制執行,通常分別為10秒和30秒,但這可能因操作系統而異。 將太大或太小的超時值調整到適當的最小值或最大值。

雖然這並沒有專門解決明確關閉氣球的問題,但它向我表明,一旦顯示氣球,ShowBalloonTip()方法的調用者根本無法完全控制氣球。

我找到的最好的選擇是你已經提到的:

myNotifyIcon.Visible = false;
myNotifyIcon.Visible = true;

不理想,但它的工作原理。 另一個想法是更改氣球中顯示的消息,以指示前一條消息已過時:

myNotifyIcon.ShowBalloonTip(2000, "Title", "Never mind!", ToolTipIcon.Info);

有一種簡單的方法可以做到這一點。

myNotifyIcon.ShowBalloonTip(2000);
myNotifyIcon.visible = true;
this.Hide();

試試這個,它肯定會100%工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM