C# 程序關閉托盤圖標不會自動消失


c#程序關閉托盤圖標不會自動消失,進程的托盤圖標卻不能隨着進程的結束而自動消失  必須將鼠標移到圖標上面時才能消失?  請問如何才能做到圖標隨着進程的結束而自動消失呢(外部強行結束,如在任務管理器將其結束), windows系統好多程序都會這樣。

網上搜索后大家說法不一,如下:

1、這個就這樣,很多程序都有這個問題,大家都習慣了

2、似乎沒法解決。。任務管理器是強制關閉的,程序認為是異常結束,所以沒有執行小圖標關閉的操作,當你鼠標移上去的時候,系統找不到進程(因為已關閉),所以就消失了。

3、任務管理器是強制關閉的,程序認為是異常結束,所以沒有執行小圖標關閉的操作,當你鼠標移上去的時候,系統找不到進程(因為已關閉),所以就消失了。

4、只能習慣!

5、退出時讓 托盤 控件不可見..再退出.

6、應用程序操作托盤圖標是通過windows的委托來處理的,也就是應用程序對系統說“我要添加一個圖標”,於是任務欄就多了個圖標,程序退出時對系統說“把我的圖標刪除了”,任務欄才會消除圖標。。。直接砍掉一個進程,那個程序異常退出,還未來得及說“把我的圖標刪除了”,所以任務欄圖標不會立刻消失。。

 

最終結論:

呵呵,這個問題剛開始也困攏了我半天,上網找了很多貼子都沒有解決的方法,后來我自己試了一個它的方法,結果一測試完全好用:在程序的closed事件處理程序中調用NotifyIcon控件的Dispose()方法,這樣程序退出后托盤上的圖標立刻就消失了。
       private void Window_Closed(object sender, EventArgs e)
        {
            myNotifyIcon.Dispose();
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM