Depende del escenario; en la mayoría de los casos: en lugar de cancelar caso, simplemente no hacer nada, por ejemplo:
private void SaveDataClicked(object sender, EventArgs args) {
if(!ValidateData()) return;
// [snip: code that does stuff]
}
o:
private void SaveDataClicked(object sender, EventArgs args) {
if(ValidateData()) {
// [snip: code that does stuff]
}
}
Hay algunos eventos que exponen un CancelEventArgs
(o similar), lo que permite para cancelar el comportamiento external externo a través del args
- form-closing es el ejemplo más obvio (establecer e.Cancel = true;
).
Tenga en cuenta que en este escenario no tendría un resultado de diálogo automático en el botón; aplique eso manualmente cuando (si) el controlador finaliza correctamente.
@Marc: Thx para proporcionar un conocimiento útil. Trabajé para ambos escenarios. –
Esto solo no funciona en ** cancelButton_Click ** y ** okButton_Click ** ya que tienen el efecto secundario de cerrar el cuadro de diálogo. Pero, sí, para cualquier botón que no configure _automatically_ DialogResult, esto es más fácil. –