Con .NET capire per quale motivo un form sta per essere chiuso non e' cosa da poco, mentre in VB6 era banale (basta testare UnloadMode).
Giocando con l'object browser di Whidbey ho trovato un enigmatico FormCancelEventArgs il quale tra i vari parametri ha un enumerato CloseReason che vale:

FormOwnerClosing
MdiFormClosing
None
TaskManagerClosing
UserClosing
WindowsShutDown

Questo mi fa supporre che i forms di Whidbey avranno un evento FormClosing(sender as Object, e as FormCancelEventArgs) :-)