您的位置:首页 > 编程语言 > C#

C# WINFORM 捕获最小化事件

2016-03-07 15:14 316 查看




C# WINFORM 捕获最小化事件

虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现

当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。

本例为最小化后隐藏窗口:


private void Form1_Deactivate(object sender, EventArgs e)


        {


            if (this.WindowState == FormWindowState.Minimized)


                this.Visible = false;


        }

还有种方法更加直接,重载WndProc:


const int WM_SYSCOMMAND = 0x112;


const int SC_CLOSE = 0xF060;


const int SC_MINIMIZE = 0xF020;


const int SC_MAXIMIZE = 0xF030;


protected override void WndProc(ref Message m)


{


    if (m.Msg == WM_SYSCOMMAND)


    {


        if (m.WParam.ToInt32() == SC_MINIMIZE)


        {


            this.Visible = false;


            return;


        }


    }


    base.WndProc(ref m);


}


HTTP://LIMON7.CNBLOGS.COM/ARCHIVE/2006/07/23/457865.HTML

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: