Je voulais pouvoir utiliser la possibilité que mes contrôles déclenchent leur validation à chaque fois qu'ils perdent le focus mais aussi ne pas déclencher cette validation lorsque l'utilisateur souhaite quitter la fenêtre (croix, Alt+F4, CancelButton, Escape). Le problème c'est que si la propriété AutoValidate d'une fenêtre est «EnablePreventFocusChange» alors la validation s'exécute dès que le close de la fenêtre est appelé.
Mettre le CauseValidation du CancelButton à false ne suffit pas. En plus la croix et le Alt+F4 ne serait pas impactés.
J'ai donc fait cette petite surcharge de la class Form pour résoudre ce problème. Quand vous créez une fenêtre, il suffit de la faire hériter de MaForm au lieu de Form.