【发布时间】:2013-02-15 13:51:52
【问题描述】:
我有两个窗体 MainForm 和 MinimizedMainForm。我想为这两种形式禁用 Windows+D。两种形式的父级都是第三种形式 FormBase。我使用以下代码禁用 Windows+D
private const in GWL_HWNDPARENT =-8
IntPtr hprog = NativeMethods.FindWindowEx(NativeMethods.FindWindowEx(NativeMethods.FindWindow("Progman", "Program Manager"),
IntPtr.Zero, "SHELLDLL_DefView", ""),
IntPtr.Zero, "SysListView32", "FolderView");
NativeMethods.SetWindowLong(this.Handle, GWL_HWNDPARENT, hprog);
我面临的问题是,如果按 Win+D,我的 MainForm 永远不会最小化。 对于 MinimizedForm 的首次启动,如果我按 Win+D,它不会被最小化。 但是如果我按 Win+D ,第二次 + 加载最小化的MainForm ,表单会被最小化。我在两个表单的 FormLoad 事件上添加了上面的代码。当我单击 MainForm 上的面板时打开 MinimizedMainForm,反之亦然。 MainForm 是我项目的起始表单。
我应该怎么做才能阻止表单最小化 2nd+ loadForm 事件?
【问题讨论】:
-
为什么要阻止最小化您的应用程序?如果用户想要最小化所有窗口,您的窗口也应该服从。如果没有,那就很烦人了。
-
@CodeCaster:因为它是一个桌面应用程序。类似于 Windows 小工具。
-
然后让它成为一个在这方面符合的小部件。
-
@GrantThomas:如何制作小部件?您的意思是使用 HTML 和 CSS 进行开发?