web-dev-qa-db-fra.com

C # Validation de l'entrée pour la zone de texte sur les formulaires Win

Je veux vérifier ce que l'utilisateur écrit dans une zone de texte avant de l'enregistrer dans une base de données. Quelle est la meilleure façon de procéder? Je suppose que je peux toujours écrire des ifs ou des blocs try-catch, mais je me demandais s'il y avait une meilleure méthode. J'ai lu quelque chose sur la validation des événements, mais je ne sais pas comment les utiliser.

27
Rocshy

La description

Il existe de nombreuses façons de valider votre TextBox. Vous pouvez le faire à chaque frappe de touche, ultérieurement ou lors de l'événement Validating.

L'événement Validating est déclenché si votre TextBox perd le focus. Par exemple, lorsque l'utilisateur clique sur un autre contrôle. Si votre ensemble e.Cancel = true la TextBox ne perd pas le focus.

MSDN - Événement Control.Validating Lorsque vous modifiez le focus à l'aide du clavier (TAB, SHIFT + TAB, etc.), en appelant Select ou Les méthodes SelectNextControl ou en définissant la propriété ContainerControl.ActiveControl sur le formulaire actuel, les événements de focus se produisent dans l'ordre suivant

Entrer

Focalisé

Laisser

Valider

Validée

LostFocus

Lorsque vous modifiez le focus à l'aide de la souris ou en appelant la méthode Focus, les événements de focus se produisent dans l'ordre suivant:

Entrer

Focalisé

LostFocus

Laisser

Valider

Validée

Exemple d'événement de validation

private void textBox1_Validating(object sender, CancelEventArgs e)
{
    if (textBox1.Text != "something")
        e.Cancel = true;
}

Mise à jour

Vous pouvez utiliser le ErrorProvider pour visualiser que votre TextBox n'est pas valide. Découvrez tilisation du contrôle du fournisseur d'erreurs dans les formulaires Windows et C #

Plus d'information

46
dknaack

Avec WinForms, vous pouvez utiliser ErrorProvider en conjonction avec l'événement Validating pour gérer la validation de l'entrée utilisateur. L'événement Validating fournit le crochet pour effectuer la validation et ErrorProvider donne une approche cohérente agréable pour fournir à l'utilisateur des commentaires sur toutes les conditions d'erreur.

http://msdn.Microsoft.com/en-us/library/system.windows.forms.errorprovider.aspx

9
Chris Taylor