当前位置:  开发笔记 > 开发工具 > 正文

从最小化恢复WindowState

如何解决《从最小化恢复WindowState》经验,为你挑选了3个好方法。

有没有一种简单的方法可以将最小化的形式恢复到以前的状态,正常还是最大化?我期待与单击任务栏相同的功能(或右键单击并选择还原).

到目前为止,我有这个,但如果表单以前最大化,它仍然作为一个普通窗口返回.

if (docView.WindowState == FormWindowState.Minimized)
    docView.WindowState = FormWindowState.Normal;

我是否必须处理表单中的状态更改以记住以前的状态?



1> Mesmo..:

我使用以下扩展方法:

using System.Runtime.InteropServices;

namespace System.Windows.Forms
{
    public static class Extensions
    {
        [DllImport( "user32.dll" )]
        private static extern int ShowWindow( IntPtr hWnd, uint Msg );

        private const uint SW_RESTORE = 0x09;

        public static void Restore( this Form form )
        {
            if (form.WindowState == FormWindowState.Minimized)
            {
                ShowWindow(form.Handle, SW_RESTORE);
            }
        }
    }
}

然后调用form.Restore()我的代码.



2> Ashraf Abusa..:

将表单恢复到正常状态的最简单方法是:

if (MyForm.WindowState == FormWindowState.Minimized)
{
    MyForm.WindowState = FormWindowState.Normal;
}


如果之前的窗口状态不是"正常"而是"最大化",该怎么办?

3> jeffm..:

您可以模拟单击任务栏按钮,如下所示:

SendMessage(docView.Handle, WM_SYSCOMMAND, SC_RESTORE, 0);

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有