首页 > 编程 > C# > 正文

C#实现WinForm捕获最小化事件的方法

2020-01-24 02:28:46
字体:
来源:转载
供稿:网友

一般来说,虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现WinForm捕获最小化事件。
实现方法为:当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。

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

还有种方法更加直接,重载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);}
private void Form1_Deactivate(object sender, EventArgs e){  if (this.WindowState == FormWindowState.Minimized) this.Visible = false;}

希望本文所述实例对大家C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表