Вопрос по c# – Как определить, когда форма окна минимизируется?

75

Я знаю, что могу получить текущее состояние с помощью WindowState, но я хочу знать, есть ли какое-либо событие, которое сработает, когда пользователь попытается свернуть форму.

Ваш Ответ

4   ответа
17

Error: User Rate Limit ExceededspecificError: User Rate Limit ExceededResizeError: User Rate Limit ExceededFormWindowState.MinimizedError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded
71

Error: User Rate Limit ExceededbeforeError: User Rate Limit Exceeded

    private const int WM_SYSCOMMAND = 0x0112;
    private const int SC_MINIMIZE = 0xF020; 

    [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
    protected override void WndProc(ref Message m)
    {
        switch(m.Msg)
        {
            case WM_SYSCOMMAND:
                int command = m.WParam.ToInt32() & 0xfff0;
                if (command == SC_MINIMIZE)
                {
                    // Do your action
                }
                // If you don't want to do the default action then break
                break;
        }
        base.WndProc(ref m);
    }

Error: User Rate Limit ExceededafterError: User Rate Limit ExceededResizeError: User Rate Limit Exceeded

private void Form1_Resize (object sender, EventArgs e)
{
    if (WindowState == FormWindowState.Minimized)
    {
        // Do your action
    }
}
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededClickError: User Rate Limit Exceeded
6

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

private void Form1_Resize(object sender, EventArgs e)
{
    if (WindowState == FormWindowState.Minimized)
    {
        // Do some stuff
    }
}

Error: User Rate Limit Exceeded

public Main()
{
    InitializeComponent();
    this.StateChanged += Form1_Resize;
}
108

Error: User Rate Limit Exceeded

private void Form1_Resize ( object sender , EventArgs e )
{
    if ( WindowState == FormWindowState.Minimized )
    {
        // Do some stuff
    }
}
Error: User Rate Limit ExceededExceptions can be swallowed.

Похожие вопросы