我有一個應用程序在托盤中使用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