Windows Mobile 5.0 窗体的隐藏

来源:互联网 发布:局域网创建软件 编辑:程序博客网 时间:2024/04/30 02:01
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);
 
//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();
}
 
原创粉丝点击