使程序在C#.net中从系统托盘运行

时间:2013-05-11 09:15:43

标签: c# windows winforms

我正在开发一个小型内部使用实用程序ATM,我希望它出现在系统托盘而不是任务栏中。我也希望它从启动时最小化,而不是加载主窗体。此外,我想知道如何自定义左键单击操作和系统托盘图标上的右键菜单。

我没有找到详细的解决方法,我对C#(实际上是Windows一般的新手)很新!所以不要100%确定要搜索的内容!

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

使用NotifyIcon的基本答案是正确的,但是,与许多.NET一样,正确涉及到许多细微之处。 Brad提到的教程给出了很好的基础知识,但没有解决这些问题:

  • 从系统托盘关闭应用程序是否正确关闭所有打开的子窗体?
  • 应用程序是否强制只运行一个自身实例(适用于大多数(尽管不是全部)托盘应用程序)?
  • 如果需要,如何打开WPF子窗口以及WinForms子窗口。
  • 如何支持动态上下文菜单。
  • WinForms空间中存在标准NotifyIcon;我可以做一个纯WPF解决方案吗? (是的,你可以!)

我刚刚在Simple-Talk.com上发表了一篇文章,详细介绍了这些要点,提供了一个托盘应用程序框架,您可以立即使用它,还有一个完整的,真实的示例应用程序来显示所有内容在实践中。见Creating Tray Applications in .NET: A Practical Guide,发布于2010年11月。