我们经常需要实现“用户关闭窗体,但窗体并不关闭而是最小化”的功能,这个功能的实现非常简单,只需在FormClosing事件中写入如下代码即可:
If e.CloseReason = CloseReason.UserClosing Then '判断是不是用户做出的关闭窗体的行为
e.Cancel = True'这句可使程序停止关闭
End If
“If e.CloseReason = CloseReason.UserClosing Then”这句用于判断是不是用户做出的关闭窗体的行为。
为什么要此判断呢?因为做出“关闭窗体”这个操作的源头有三个,一是用户,二是其他程序,三是WINDOWS系统本身,比如关机、重启时,WINDOWS系统就会自己关闭用户已打开的程序。如果不加此判断条件,那WINDOWS在关机重启前欲关闭我们的程序时,就会出现程序无法关闭的情况,于是WINDOWS的关机重启就已卡住了。因此会导致XP的关机重启就无法进行下去(此现象XP有,WIN7无)。
谢谢一位叫陈锋的朋友向我提出了“便利大师快捷启动工具”的这个BUG,经研究后已如上所述解决此问题。