2010-01-29 119 views
2

我一个WinForms应用程序,“码头”到任务栏 我想自动隐藏的形式,使其只出现当鼠标接近/超过形式C#自动隐藏形式

有什么建议?

+1

我的建议:使用wpf而不是winforms。制作这样的蛋糕。 ;) – 2010-01-29 15:35:30

+0

我不知道你如何停靠某些东西然后隐藏它。使用NotifyIcon,这是“在托盘中运行”应用程序的标准用户界面。然而,它需要点击图标才能启动任何操作。悬停不能工作。没有问题,用户习惯于点击它们。 – 2010-01-29 16:49:52

+0

等待wpf先用4.0成熟吧! – Kumar 2010-01-29 20:25:40

回答

0

在鼠标移动事件上安装一个全局钩子,并检查它是否在表单边界内。即使隐藏表单也应该工作。如果不只是将位置存储为矩形并检查。

代码的简单和方便的全局钩子实现,可以发现:

http://www.codeproject.com/KB/cs/globalhook.aspx

我用这个方法来创建“热点”功能,用户桌面。

0

我不知道它是精确回答你的问题,但这个Codeplex上的样本...

http://remoteaccessmonitor.codeplex.com/

浏览源代码,并检查了MinimizeToTray.cs文件 - 它有隐藏时弹出消息的例子,我认为它的默认行为是重新出现在点击(虽然我想这可能会改变)。

+0

完全不同的场景恐怕 – Kumar 2010-01-29 15:33:23

0

你可以。

  • 投票鼠标coords直到它在您的应用程序的某个半径内。
  • 在停靠的应用程序上方放置一个不可见的始终在顶部的窗体,并使其触发MouseEnter事件。

这就是我所能想到的。无论是。

+0

嗯,我宁愿避免轮询,定位一个看不见的形式可能会工作,但它会不会妨碍点击下面的房地产? – Kumar 2010-01-29 20:27:34