Essaye de rajouter une condition:


if (e.CloseReason != CloseReason.WindowsShutDown)
=> tu fais le cancel.
(sinon tu laisses la form se fermer).