我想检测在某些情况下我的应用程序是否最小化,如果是,则需要还原该窗口。我可以轻松做到如下:

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


但是,如果用户首先最大化表单,然后最小化表单,会发生什么呢?我不知道是否将WindowState设置为FormWindowState.NormalFormWindowState.Maximized。我可以检查解决此问题的方法或API调用吗?

最佳答案

下面显示的代码可以满足您的需求。顺便说一句,覆盖用户的选择是非常不明智的。

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        mLastState = this.WindowState;
    }
    FormWindowState mLastState;
    protected override void OnResize(EventArgs e) {
        base.OnResize(e);
        if (mLastState != this.WindowState) {
            if (this.WindowState == FormWindowState.Minimized) this.WindowState = mLastState;
            else mLastState = this.WindowState;
        }
    }
}

10-04 12:09