Guide pratique pour valider les paramètres d’application
Cette rubrique montre comment valider les paramètres d’application avant qu’ils ne soient conservés.
Étant donné que les paramètres d’application sont fortement typés, vous avez une certaine confiance que les utilisateurs ne peuvent pas affecter de données d’un type incorrect à un paramètre donné. Toutefois, un utilisateur peut toujours tenter d’affecter une valeur à un paramètre qui se situe en dehors des limites acceptables, par exemple en fournissant une date de naissance qui se produit à l’avenir. ApplicationSettingsBase, la classe parente de toutes les classes de paramètres d’application, expose quatre événements pour activer la vérification de ces limites. La gestion de ces événements place tout votre code de validation dans un emplacement unique, plutôt que de le répartir dans votre projet.
L’événement que vous utilisez dépend du moment où vous devez valider vos paramètres, comme décrit dans le tableau suivant.
Événement | Occurrence et utilisation |
---|---|
SettingsLoaded | Se produit après le chargement initial d’un groupe de propriétés de paramètres. Utilisez cet événement pour valider les valeurs initiales pour l’ensemble du groupe de propriétés avant qu’elles ne soient utilisées dans l’application. |
SettingChanging | Se produit avant la modification de la valeur d’une propriété de paramètres unique. Utilisez cet événement pour valider une propriété unique avant sa modification. Il peut fournir des commentaires immédiats aux utilisateurs concernant leurs actions et leurs choix. |
PropertyChanged | Se produit après la modification de la valeur d’une propriété de paramètres unique. Utilisez cet événement pour valider une propriété unique après sa modification. Cet événement est rarement utilisé pour la validation, sauf si un processus de validation asynchrone long et long est requis. |
SettingsSaving | Se produit avant le stockage du groupe de propriétés des paramètres. Utilisez cet événement pour valider les valeurs de l’ensemble du groupe de propriétés avant qu’elles ne soient conservées sur le disque. |
En règle générale, vous n’utiliserez pas tous ces événements au sein de la même application à des fins de validation. Par exemple, il est souvent possible de répondre à toutes les exigences de validation en gérant uniquement l’événement SettingChanging.
Un gestionnaire d’événements effectue généralement l’une des actions suivantes lorsqu’il détecte une valeur non valide :
Fournit automatiquement une valeur connue pour être correcte, telle que la valeur par défaut.
Interroge à nouveau l’utilisateur du code serveur pour obtenir des informations.
Pour les événements déclenchés avant leurs actions associées, telles que SettingChanging et SettingsSaving, utilise l’argument CancelEventArgs pour annuler l’opération.
Pour plus d’informations sur la gestion des événements, consultez Vue d’ensemble des gestionnaires d’événements.
Les procédures suivantes montrent comment tester une date de naissance valide à l’aide de l’événement SettingChanging ou de l’événement SettingsSaving. Les procédures ont été écrites selon l’hypothèse que vous avez déjà créé vos paramètres d’application ; dans cet exemple, nous allons effectuer la vérification des limites sur un paramètre nommé DateOfBirth
. Pour plus d’informations sur la création de paramètres, consultez Guide pratique pour créer des paramètres d’application.
Pour obtenir l’objet des paramètres de l’application
Obtenez une référence à l’objet des paramètres d’application (instance de wrapper) en respectant l’un des éléments de la liste suivante :
Si vous avez créé vos paramètres à l’aide de la boîte de dialogue Paramètres de l’application Visual Studio dans l’éditeur de propriétés , vous pouvez récupérer l’objet de paramètres par défaut généré pour votre langue via l’expression suivante.
Properties.Settings.Default
MySettings.Default
- ou -
Si vous êtes développeur Visual Basic et que vous avez créé vos paramètres d’application à l’aide du Concepteur de projets, vous pouvez récupérer vos paramètres à l’aide de l'l’objet My.Settings.
- ou -
Si vous avez créé vos paramètres en dérivant directement de ApplicationSettingsBase, vous devez instancier votre classe manuellement.
MyCustomSettings settings = new MyCustomSettings();
Dim Settings as New MyCustomSettings()
Les procédures suivantes ont été écrites en supposant que l’objet des paramètres d’application a été obtenu par le biais du dernier élément répertorié dans cette procédure.
Pour valider les paramètres de l’application lorsqu’un paramètre change
Si vous êtes développeur C#, dans l’événement
Load
de votre formulaire ou contrôle, ajoutez un gestionnaire d’événements pour l’événement SettingChanging.- ou -
Si vous êtes développeur Visual Basic, vous devez déclarer la variable
Settings
à l’aide du mot cléWithEvents
.public void Form1_Load(Object sender, EventArgs e) { settings.SettingChanging += new SettingChangingEventHandler(MyCustomSettings_SettingChanging); }
Public Sub Form1_Load(sender as Object, e as EventArgs) AddHandler settings.SettingChanging, AddressOf MyCustomSettings_SettingChanging End Sub
Définissez le gestionnaire d'événements et écrivez à l'intérieur de celui-ci le code pour effectuer une vérification des limites de la date de naissance.
private void MyCustomSettings_SettingChanging(Object sender, SettingChangingEventArgs e) { if (e.SettingName.Equals("DateOfBirth")) { var newDate = (DateTime)e.NewValue; if (newDate > DateTime.Now) { e.Cancel = true; // Inform the user. } } }
Private Sub MyCustomSettings_SettingChanging(sender as Object, e as SettingChangingEventArgs) Handles Settings.SettingChanging If (e.SettingName.Equals("DateOfBirth")) Then Dim NewDate as Date = CType(e.NewValue, Date) If (NewDate > Date.Now) Then e.Cancel = True ' Inform the user. End If End If End Sub
Pour valider les paramètres de l’application lorsqu’un enregistrement se produit
Dans l’événement
Load
de votre formulaire ou contrôle, ajoutez un gestionnaire d’événements pour l’événement SettingsSaving.public void Form1_Load(Object sender, EventArgs e) { settings.SettingsSaving += new SettingsSavingEventHandler(MyCustomSettings_SettingsSaving); }
Public Sub Form1_Load(Sender as Object, e as EventArgs) AddHandler settings.SettingsSaving, AddressOf MyCustomSettings_SettingsSaving End Sub
Définissez le gestionnaire d’événements et écrivez le code à l’intérieur de celui-ci pour vérifier les limites de la date de naissance.
private void MyCustomSettings_SettingsSaving(Object sender, SettingsSavingEventArgs e) { if (this["DateOfBirth"] > Date.Now) { e.Cancel = true; } }
Private Sub MyCustomSettings_SettingsSaving(Sender as Object, e as SettingsSavingEventArgs) If (Me["DateOfBirth"] > Date.Now) Then e.Cancel = True End If End Sub
Voir aussi
.NET Desktop feedback