Cela dépend du scénario; dans la plupart des cas: plutôt que cancel l'événement, ne rien faire, par exemple:
private void SaveDataClicked(object sender, EventArgs args) {
if(!ValidateData()) return;
// [snip: code that does stuff]
}
ou:
private void SaveDataClicked(object sender, EventArgs args) {
if(ValidateData()) {
// [snip: code that does stuff]
}
}
Il y a quelques événements qui exposent une CancelEventArgs
(ou similaire), ce qui permet de pour annuler certains comportement externe via le args
- la fermeture de formulaire étant l'exemple le plus évident (définir e.Cancel = true;
). Notez que dans ce scénario, je n'aurais pas un résultat de dialogue automatique sur le bouton; appliquez-le manuellement lorsque (si) le gestionnaire se termine avec succès.
@Marc: Thx pour fournir des informations utiles. J'ai travaillé pour les deux scénarios. –
Cela ne fonctionne pas dans ** cancelButton_Click ** et ** okButton_Click ** car ils ont pour effet secondaire de fermer la boîte de dialogue. Mais, oui, pour tout bouton qui ne configure pas automatiquement le DialogResult, c'est plus facile. –