Étant donné que vous avez spécifié que vous vouliez une boîte de dialogue d'erreur pop Une façon de procéder est de déplacer votre validation dans un fichier de type OnClosing
gestionnaire d'événements. Dans cet exemple, la fermeture du formulaire est interrompue si l'utilisateur répond oui à la question posée dans la boîte de dialogue.
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
// Determine if text has changed in the textbox by comparing to original text.
if (textBox1.Text != strMyOriginalText)
{
// Display a MsgBox asking the user to save changes or abort.
if(MessageBox.Show("Do you want to save changes to your text?", "My Application",
MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// Cancel the Closing event from closing the form.
e.Cancel = true;
// Call method to save file...
}
}
}
En fixant e.Cancel = true
vous empêcherez la fermeture du formulaire.
Cependant, l'affichage des erreurs de validation en ligne serait une meilleure conception/expérience utilisateur. (en mettant en évidence les champs en question d'une manière ou d'une autre, en affichant des infobulles, etc.) et empêcher l'utilisateur de sélectionner le bouton OK en premier lieu.