Microsoft .NET Compact Framework 2.0 的窗体类(System.Windows.Forms.Form)也提供了 WindowsState 属性,是 FormWindowState 枚举类型。在 .NET Framework 中 FormWindowState 枚举有 Normal, Minimized, Maximized 三个值。但是 .NET Compact Framework 中的 FormWindowState 枚举只有 Normal 和 Maximized 两个值。因此在 .NET Compact Framework 的窗体类中,不能通过设置 WindowState 属性为 FormWindowState.Minimized 实现窗体的最小化。不过我们可以通过调用 Win32 API 来实现,以下是实现该功能的关键代码:
//using System.Runtime.InteropServices;
[DllImport( " coredll " )]
private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
[DllImport( " coredll " )]
private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow);
//SW_HIDE : 隐藏窗口 0
//SW_SHOW : 激活显示窗口 5
//SW_SHOWMAXIMIZED : 最大化窗口 3
//SW_SHOWMINIMIZED : 最小化窗口 2
//SW_SHOWNORMAL : 按原始大小显示窗口 1
//SW_MINIMIZE : 使指定的窗口最小化并且按Z顺序激活下个上层窗口。 6
private const int SW_MINIMIZE = 6 ;
private void menuHide_Click( object sender, EventArgs e)
{
// 隐藏窗体,可以通过重新运行程序来显示窗体
ShowWindow( this .Handle, SW_MINIMIZE);
}
private void menuExit_Click( object sender, EventArgs e)
{
// 关闭窗体,窗体对象将会被销毁
this .Close();
}
//SW_SHOW : 激活显示窗口 5
//SW_SHOWMAXIMIZED : 最大化窗口 3
//SW_SHOWMINIMIZED : 最小化窗口 2
//SW_SHOWNORMAL : 按原始大小显示窗口 1
//SW_MINIMIZE : 使指定的窗口最小化并且按Z顺序激活下个上层窗口。 6
private const int SW_MINIMIZE = 6 ;
private void menuHide_Click( object sender, EventArgs e)
{
// 隐藏窗体,可以通过重新运行程序来显示窗体
ShowWindow( this .Handle, SW_MINIMIZE);
}
private void menuExit_Click( object sender, EventArgs e)
{
// 关闭窗体,窗体对象将会被销毁
this .Close();
}