将WinForms应用最小化到系统托盘的正确方法是什么?
注意:最小化到 系统托盘 ;在任务栏右侧按时钟排列。我并不是问最小化任务栏,这是当您单击窗口上的“减号”按钮时发生的事情。
我见过一些骇人听闻的解决方案,例如“最小化,将ShowInTaskbar = false设置,然后显示您的NotifyIcon”。
像这样的解决方案很棘手,因为该应用程序似乎没有像其他应用程序那样最小化,因此代码必须检测何时将ShowInTaskbar = true设置为其他问题。
正确的方法是什么?
实际上,没有任何托管方法可以在本机winforms中对托盘执行这种形式的动画,但是您可以P / Invoke shell32.dll来执行此操作:
一些很好的信息在这里(在评论中不是帖子):
http://blogs.msdn.com/jfoscoding/archive/2005/10/20/483300.aspx
这是在C ++中:
http://www.codeproject.com/KB/shell/minimizetotray.aspx
您可以使用它来找出对于C#版本需要Pinvoke的东西。