7

我在我的一个子(模态)表单中使用 NotifyIcon 控件,它工作正常。按预期显示气球提示,处理鼠标事件等......但是,当我期望它消失时,它并没有消失。具体来说,当我退出子表单并且父表单重新控制时,图标仍然存在。它的工具提示是可访问的,因此它非常“活跃”。

然后当我退出整个应用程序时,图像仍然存在,直到我将光标悬停在它上面。一旦鼠标它消失。

我怎样才能让它正常运行?好的通常是一个坏词:-0 当创建它的表单消失时,我怎样才能让它消失?

有人能解释一下是什么原因造成的吗,我认为 .net 应该自行清理?

G

编辑:如果我以关闭的形式调用 Dispose 方法,这是可行的,但我真的必须这样做吗?G

4

3 回答 3

5

这是一个想法,不确定这是否会有所作为,但是当子窗体关闭时,您是否在 NotifyIcon 上调用 Dispose() ?

编辑:刚刚看到您的编辑,是的,我对这有帮助并不感到惊讶,是的,您应该这样做。在幕后,某些东西正在使用一些非托管资源,您需要释放它。通常,您的应用程序中任何实现了您正在使用的 IDisposable 的东西,都请帮自己一个忙并处置它。

于 2009-03-05T15:58:05.700 回答
5
Icon.Visible = false

也可以。不管怎样,Dispose还是应该调用windows句柄来处理。

于 2009-03-05T16:22:09.247 回答
1

这个问题类似。

如果您对清理系统托盘的新程序实例感到满意,而不是试图保证在任何类型的关闭时进行清理,以下模拟通知托盘清理。它使用了一个 SendMessage 解决方案,该解决方案模拟了用户鼠标悬停清理,不需要实际移动用户的光标。

请注意,在 Windows 7 机器上,名称Notification Area应替换为User Promoted Notification Area.

于 2010-11-24T09:06:28.050 回答