Nelle Windows Form normalmente imposto la property CauseValidation a False per il pulsante annulla.
In un progetto mi sono accorto che non funzionava correttamente: cioè anche impostando CauseValidation a False la validazione dei controlli veniva comunque eseguita.
Ho notato che il problema è legato al fatto che i pulsanti sono inseriti in un TableLayoutPanel e quindi è come se fosse prioritaria la proprietà CausesValidation del TableLayoutPanel.
Per far si che il pulsante Annulla non scateni la validazione è quindi necessario impostare a False anche la property CausesValidation del TableLayoutPanel.
.net Framework, C# e VB.net