我使用的是 Windows Vista 和 C#.net 3.5,但我让我的朋友在 XP 上运行该程序并且遇到了同样的问题。
所以我有一个 C# 程序,我在后台运行,系统托盘中有一个图标。我有一个低级键盘钩子,所以当我按下两个键(在本例中为 Ctr+windows)时,它会拉出应用程序的主窗体。表单在组合按键事件处理程序中设置为全屏:
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
所以它基本上可以工作。当我点击 CTR+Windows 时,无论我关注什么程序,它都会弹出表单。但有时,任务栏仍会显示在表单上,这是我不想要的。当我按下那个组合键时,我希望它总是全屏显示。
我认为这与最初关注的应用程序有关。但即使当我点击我的主窗体时,任务栏有时也会停留在那里。所以我想知道焦点是否真的是问题所在。似乎有时任务栏很顽固,不想坐在我的程序后面。
任何人有任何想法我可以解决这个问题吗?
编辑:更多细节 - 我试图达到与网络浏览器相同的效果,当您将其置于全屏模式或将 powerpoint 置于演示模式时。
在 windows 窗体中,您可以通过将边框样式设置为 none 并最大化窗口来做到这一点。但有时由于某种原因,窗口不会覆盖任务栏。一半的时间会。
如果我将主窗口放在最上面,那么当我单击它时,其他窗口会落在它后面,如果任务栏被隐藏,我不希望这样做。