屏蔽右键任务栏关闭功能的可行办法

禁用窗体关闭按钮
本文介绍了一种方法,可以在程序处理重要事务期间禁用窗体的关闭按钮,以防止用户的误操作导致程序意外关闭。通过检测ControlBox属性并自定义WndProc事件,可以有效地控制关闭事件的有效性。

    很多时间,我们不希望软件正在操作时,因为用户的误操作,点击任务栏的右键关闭按键而退出程序。

    下面的逻辑是,当软件正在处理重要事务时,将FORM的ControlBox关闭,在WndProc事件中通过判断ControlBox的true /false来决定这次的CLOSE事件是否有效。

    从而达到效果。


  1. protected override void WndProc(ref Message m)
  2. {
  3.     const int WM_SYSCOMMAND = 0x0112;
  4.     const int SC_CLOSE = 0xF060;
  5.     if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)
  6.     {
  7.         // 没有 [X]按键时,CLOSE事件无效
  8.         if(this.ControlBox == false)
  9.             return;
  10.      }
  11.     base.WndProc(ref m);
  12. }


 参考文献:

http://www.cnblogs.com/zeroone/archive/2010/03/31/1701084.html

http://blog.youkuaiyun.com/jumtre/article/details/38403457

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值