有时候,我们使用一个软件,例如QQ,当我们点击关闭按钮时,会出现提示:
但我们选择最小化到系统托盘区时,就不会退出程序。那么这个功能其实就是屏蔽了关闭功能。那么我们在C# winForm中如何实现呢,实际上有两分钟办法进行处理。
【方法一】在窗体类中重写OnClosing方法,处理关闭消息
protected override void OnClosing(CancelEventArgs e)
{
if (this.Visible == true)
{
e.Cancel = true;
this.WindowState = FormWindowState.Minimized;
//Hide();//隐藏,当然您也可以采用其他的自定义操作哦
}
}
【方法二】在窗体类中重写WndProc方法,处理Windows消息
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
{
// 用户单击关闭按钮时的操作
this.WindowState = FormWindowState.Minimized; //最小化
return;
}
base.WndProc(ref m);
}