【发布时间】:2013-01-05 17:27:01
【问题描述】:
我有一个应用程序,它有一个主窗体和一个系统任务托盘图标。在主窗体的设计器中,我把TrayIcon控件拖到窗体上,所以它是主窗体的子窗体。
此时,当用户按下主窗体上的关闭按钮时,它实际上只是将它隐藏起来,以便应用程序不会终止,除非用户右键单击 TrayIcon 并单击退出。但是,主窗体有很多控件和资源,当主窗体被隐藏时,它仍然会为这些资源占用内存。我的目标是实际处理表单,以便它在不使用时不会占用该内存。
除非我弄错了,当主窗体被隐藏时,它不再占用该内存,但我认为情况并非如此。 我不是内存方面的专家,我什至可能完全搞错内存管理的工作原理,因此这个问题是无效的。
无论如何,如果我是正确的,当主窗体仅被隐藏时,它仍会占用可以通过完全关闭窗体来释放的内存,有没有办法让我在不终止应用程序的情况下真正关闭主窗体?如果是这样,我需要在Program 类中而不是在主窗体的类中使用代码创建TrayIcon,对吗?
【问题讨论】:
标签: c# winforms memory-management system-tray