我正在使用 Windows Vista 和 C#.net 3.5,但是我让朋友在 XP 上运行程序时出现了同样的问题。
所以我有一个在后台运行的 C# 程序,并在 SystemTray 中具有图标。我有一个低级别的键盘钩子,所以当我按下两个键(在这种情况下是 Ctr+windows)时,它会打开应用程序的主窗体。该窗体在组合键按下事件处理程序中被设置为全屏显示:
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
基本上它是有效的。当我按下CTRL+Windows键时,它会带出表单,无论我给哪个程序焦点。但有时候,任务栏仍然会显示在表单上方,这不是我想要的。我希望每次按下那个键组合时都是全屏的。
我觉得它可能与最初拥有焦点的应用程序有关。但即使我点击我的主窗体,任务栏有时也会停留在那里。所以我想知道焦点是否真的是问题。它似乎有时只是任务栏很顽固,不想坐在我的程序后面。
有人有任何想法如何解决这个问题吗?
编辑:更多细节- 我正在尝试实现与将Web浏览器置于全屏模式或将PowerPoint置于演示文稿模式相同的效果。
在Windows表单中,您可以通过将边框样式设置为无并最大化窗口来实现此目的。但由于某种原因,有时窗口不会覆盖任务栏。一半的时间它会覆盖。
如果我将主窗口置于最上面,则单击它时其他窗口将落后于它,如果隐藏任务栏,则不希望如此。