C#全屏,隐藏任务栏

7

最近我为我的女儿编写了一个应用程序,这是一个儿童禁区,在这里她所有不必要的按键都被忽略(如windows键、Esc等),但我遇到的问题是当我使用以下代码时:

targetForm.WindowState = FormWindowState.Maximized;
targetForm.FormBorderStyle = FormBorderStyle.None;
targetForm.TopMost = true;

我能够隐藏任务栏,但它并不是真正的覆盖。当我把鼠标移动到任务栏所在的位置并单击时,它会弹出。同时,使用这段代码在我的Windows窗体中运行外部应用程序时,我的Windows窗体会一直保持在顶部。
如果有人可以帮助我以正确的方式显示我的Windows窗体作为一个真正的全屏应用程序,并能够在窗体内运行外部应用程序并使它们优先显示在顶部,那将非常感激。
如果您没有注意到,我正在使用VS2010,C#和Winforms。
提前感谢!

搜索引擎是您的好朋友:http://stackoverflow.com/search?q=win7+hide+taskbar - Prix
1
你的应用程序的目的是什么? - Gabe
这是一个儿童锁定应用程序。这样她就可以玩自己的游戏,而不会误点我的其他东西。创建一个个人资料并不能解决问题,因为她仍然可以访问比她需要的更多内容。 - Kyle
http://blogs.msdn.com/oldnewthing/archive/2005/05/05/414910.aspx - Cody Gray
可能是移除/100%隐藏WinXP任务栏的重复。 - Cody Gray
2个回答

7
制作全屏应用程序的正确方法是在主窗体中添加类似Bounds = Screen.PrimaryScreen.Bounds;的代码。然后当您的应用程序获得焦点时,它将覆盖任务栏。
您还可能需要FormBorderStyle = FormBorderStyle.None;

谢谢,我会尝试这个并让你知道结果。 - Kyle
1
这并没有帮助。问题在于操作的顺序。Erez 给出了正确的答案。 - Matthieu Charbonnier

7

执行的操作顺序不正确。您应该先隐藏边框(FormBorderStyle=None),然后将窗口状态设置为最大化。甚至不需要将TopMost设置为true。


1
这个有效!为什么没有被标记为正确答案?! - MaYaN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接