Partager via


Guide pratique pour créer des paramètres d’application

À l’aide du code managé, vous pouvez créer des paramètres d’application et les lier aux propriétés de votre formulaire ou des contrôles de votre formulaire, afin que ces paramètres soient chargés et enregistrés automatiquement au moment de l’exécution.

Dans la procédure suivante, vous créez manuellement une classe wrapper qui dérive de ApplicationSettingsBase. Pour cette classe, vous ajoutez une propriété accessible publiquement pour chaque paramètre d’application que vous souhaitez exposer.

Vous pouvez également effectuer cette procédure à l’aide de code minimal dans le concepteur Visual Studio. Consultez également Guide pratique pour créer des paramètres d’application à l’aide du concepteur.

Pour créer de nouveaux paramètres d'application de manière programmatique

  1. Ajoutez une nouvelle classe à votre projet et renommez-la. Pour cette procédure, nous allons appeler cette classe MyUserSettings. Modifiez la définition de classe afin que la classe dérive de ApplicationSettingsBase.

  2. Définissez une propriété sur cette classe wrapper pour chaque paramètre d’application dont vous avez besoin et appliquez cette propriété avec la ApplicationScopedSettingAttribute ou UserScopedSettingAttribute, en fonction de l’étendue du paramètre. Pour plus d’informations sur l’étendue des paramètres, consultez Vue d’ensemble des paramètres d’application. À présent, votre code doit ressembler à ceci :

    using System;
    using System.Configuration;
    using System.Drawing;
    
    public class MyUserSettings : ApplicationSettingsBase
    {
        [UserScopedSetting()]
        [DefaultSettingValue("white")]
        public Color BackgroundColor
        {
            get
            {
                return ((Color)this["BackgroundColor"]);
            }
            set
            {
                this["BackgroundColor"] = (Color)value;
            }
        }
    }
    
    Imports System.Configuration
    
    Public Class MyUserSettings
        Inherits ApplicationSettingsBase
        <UserScopedSetting()> _
        <DefaultSettingValue("white")> _
        Public Property BackgroundColor() As Color
            Get
                BackgroundColor = Me("BackgroundColor")
            End Get
    
            Set(ByVal value As Color)
                Me("BackgroundColor") = value
            End Set
        End Property
    End Class
    
  3. Créez une instance de cette classe wrapper dans votre application. Il s'agira généralement d'un membre privé du formulaire principal. Maintenant que vous avez défini votre classe, vous devez la lier à une propriété ; dans ce cas, la propriété BackColor de votre formulaire. Vous pouvez effectuer cette opération dans le gestionnaire d’événements Load de votre formulaire.

    MyUserSettings mus;
    
    private void Form1_Load(object sender, EventArgs e)
    {
        mus = new MyUserSettings();
        mus.BackgroundColor = Color.AliceBlue;
        this.DataBindings.Add(new Binding("BackColor", mus, "BackgroundColor"));
    }
    
    Dim Mus As MyUserSettings
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Mus = New MyUserSettings()
        Mus.BackgroundColor = Color.AliceBlue
        Me.DataBindings.Add(New Binding("BackColor", Mus, "BackgroundColor"))
    End Sub
    
  4. Si vous fournissez un moyen de modifier les paramètres au moment de l’exécution, vous devez enregistrer les paramètres actuels de l’utilisateur sur le disque lorsque votre formulaire se ferme, sinon ces modifications seront perdues.

    //Make sure to hook up this event handler in the constructor!
    //this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
        void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            mus.Save();
        }
    
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Mus.Save()
    End Sub
    

    Vous avez maintenant créé un paramètre d’application et l’avez lié à la propriété spécifiée.

L’exemple suivant montre un fichier de paramètres d’application qui définit deux paramètres d’étendue d’application et deux paramètres d’étendue utilisateur. Vous devez ajouter les noms des paramètres que vous avez créés en tant qu'entrées dans l'élément <configSections> situé en haut du fichier.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </sectionGroup>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <WindowsApplication1.Properties.Settings>
      <setting name="Cursor" serializeAs="String">
        <value>Default</value>
      </setting>
      <setting name="DoubleBuffering" serializeAs="String">
        <value>False</value>
      </setting>
    </WindowsApplication1.Properties.Settings>
  </applicationSettings>
  <userSettings>
    <WindowsApplication1.Properties.Settings>
      <setting name="FormTitle" serializeAs="String">
        <value>Form1</value>
      </setting>
      <setting name="FormSize" serializeAs="String">
        <value>595, 536</value>
      </setting>
    </WindowsApplication1.Properties.Settings>
  </userSettings>
</configuration>

Sécurité du .NET Framework

Le fournisseur de paramètres par défaut, LocalFileSettingsProvider, conserve les informations dans les fichiers de configuration sous forme de texte brut. Cela limite la sécurité à la sécurité de l’accès aux fichiers fournie par le système d’exploitation pour l’utilisateur actuel. Pour cette raison, vous devez prendre soin des informations stockées dans les fichiers de configuration. Par exemple, une utilisation courante pour les paramètres d’application consiste à stocker des chaînes de connexion qui pointent vers le magasin de données de l’application. Toutefois, en raison de problèmes de sécurité, ces chaînes ne doivent pas inclure de mots de passe. Pour plus d'informations sur les chaînes de connexion, consultez SpecialSetting.

Voir aussi