当窗口恢复时,是否在C#中引发了一个事件?

Hal*_*ali 9 c# forms events winforms

在C#/ .NET中恢复窗口时是否有任何事件?

我注意到在激活窗口时会引发一个事件,但是我找不到正在恢复的窗口的相应事件,例如从最大化或最小化状态.

Cod*_*ray 17

如果您不喜欢使用表单的WindowState属性,并且不希望保留指示表单先前状态的标志,则可以在稍低的级别获得相同的结果.

您需要覆盖表单的窗口过程(WndProc)并侦听指示WM_SYSCOMMAND消息SC_RESTORE.例如:

protected override void WndProc(ref Message m)
{
    const int WM_SYSCOMMAND = 0x0112;
    const int SC_RESTORE = 0xF120;

    if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_RESTORE)
    {
        // Do whatever processing you need here, or raise an event
        // ...
        MessageBox.Show("Window was restored");
    }

    base.WndProc(ref m);
}
Run Code Online (Sandbox Code Playgroud)


usr*_*ΛΩΝ 3

很不确定。您必须处理该SizeChanged事件并检测是否从to或toWindowState更改。来源MinimizedNormalMaximizedNormal