有时候,我们点击某个窗体的“叉”号,C#中默认是执行的窗体Close,于是我们还想再Show的时候就会报错,所以我们需要重写WndProc使其点叉时变成隐藏hide,而不是close,具体代码如下:
protected override void WndProc(ref Message m)//重写窗体。为了实现点叉时隐藏窗体而不是close窗体
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
{
//捕捉关闭窗体消息
this.Hide();
return;
}
base.WndProc(ref m);
}