很多时间,我们不希望软件正在操作时,因为用户的误操作,点击任务栏的右键关闭按键而退出程序。
下面的逻辑是,当软件正在处理重要事务时,将FORM的ControlBox关闭,在WndProc事件中通过判断ControlBox的true /false来决定这次的CLOSE事件是否有效。
从而达到效果。
- 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)
- {
- // 没有 [X]按键时,CLOSE事件无效
- if(this.ControlBox == false)
- return;
- }
- base.WndProc(ref m);
- }
参考文献:
http://www.cnblogs.com/zeroone/archive/2010/03/31/1701084.html