我们在写winform程序时,经常会使用在一个窗口中通过点击产生另外一个窗口,原来的窗口通过this.hide()代码而隐藏。紧接着可能我们直接关闭第二层窗口来结束程序,但是调试过程中会发现我们的程序并没有正常关闭,而是到了后台运行,这样的程序如果做出软件来使用,就会造成内存资源大量占用而产生浪费,下面的代码就是解决这一问题:
/// <summary> /// 关闭程序 /// </summary> 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) { Application.Exit(); } base.WndProc(ref m); }
如何使用上面的代码:在哪个窗口中想要实现关闭这一窗口就结束整个程序,就将这个函数放在该窗口的cs程序中,不需要做其他任何操作,也不需要从其他地方引用。
是不是很神奇!!!