Partager via


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

  1. 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
    
  2. 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

  1. 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
    
  2. 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