[英]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.