C# 程序关闭托盘图标不会自动消失

c#程序关闭托盘图标不会自动消失,进程的托盘图标却不能随着进程的结束而自动消失  必须将鼠标移到图标上面时才能消失?  请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束), windows系统好多程序都会这样。

网上搜索后大家说法不一,如下:

1、这个就这样,很多程序都有这个问题,大家都习惯了

2、似乎没法解决。。任务管理器是强制关闭的,程序认为是异常结束,所以没有执行小图标关闭的操作,当你鼠标移上去的时候,系统找不到进程(因为已关闭),所以就消失了。

3、任务管理器是强制关闭的,程序认为是异常结束,所以没有执行小图标关闭的操作,当你鼠标移上去的时候,系统找不到进程(因为已关闭),所以就消失了。

4、只能习惯!

5、退出时让 托盘 控件不可见..再退出.

6、应用程序操作托盘图标是通过windows的委托来处理的,也就是应用程序对系统说“我要添加一个图标”,于是任务栏就多了个图标,程序退出时对系统说“把我的图标删除了”,任务栏才会消除图标。。。直接砍掉一个进程,那个程序异常退出,还未来得及说“把我的图标删除了”,所以任务栏图标不会立刻消失。。

 

最终结论:

呵呵,这个问题刚开始也困拢了我半天,上网找了很多贴子都没有解决的方法,后来我自己试了一个它的方法,结果一测试完全好用:在程序的closed事件处理程序中调用NotifyIcon控件的Dispose()方法,这样程序退出后托盘上的图标立刻就消失了。
       private void Window_Closed(object sender, EventArgs e)
        {
            myNotifyIcon.Dispose();
        }

posted on 2017-06-29 09:22 marblemm 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/marblemm/p/7092698.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值