Lire en anglais

Partager via


ApplicationSettingsBase Classe

Définition

Agit comme classe de base pour la dérivation des classes wrapper concrètes afin d'implémenter la fonctionnalité de paramètres d'application dans les applications Windows Forms.

C#
public abstract class ApplicationSettingsBase : System.Configuration.SettingsBase, System.ComponentModel.INotifyPropertyChanged
Héritage
ApplicationSettingsBase
Implémente

Exemples

L’exemple de code suivant illustre l’utilisation des paramètres d’application pour conserver les attributs suivants du formulaire main : emplacement, taille, couleur d’arrière-plan et texte de la barre de titre. Tous ces attributs sont conservés en tant que propriétés de paramètres d’application uniques dans la FormSettings classe , nommées FormLocation, FormSizeFormBackColor et FormText, respectivement. Toutes les données à l’exception de FormText et Size sont liées à leurs propriétés de formulaire associées et ont une valeur de paramètre par défaut appliquée à l’aide de DefaultSettingValueAttribute.

Le formulaire contient quatre contrôles enfants qui ont les noms et fonctions suivants :

  • Bouton nommé btnBackColor utilisé pour afficher la boîte de dialogue Couleur commune.

  • Bouton nommé btnReload utilisé pour les paramètres de Reload l’application.

  • Bouton nommé btnReset utilisé pour les paramètres de Reset l’application.

  • Zone de texte nommée tbStatus utilisée pour afficher status informations sur le programme.

Notez qu’après chaque exécution de l’application, un caractère de point supplémentaire est ajouté au texte de titre du formulaire.

Cet exemple de code nécessite un formulaire avec une ColorDialog classe nommée colorDialog1et un StatusStrip contrôle avec un ToolStripStatusLabel nommé tbStatus. En outre, il nécessite trois Button objets nommés btnReload, btnResetet btnBackColor.

C#
partial class Form1 : Form
{
    private FormSettings frmSettings1 = new FormSettings();

    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);

        //Associate settings property event handlers.
        frmSettings1.SettingChanging += new SettingChangingEventHandler(
                                            frmSettings1_SettingChanging);
        frmSettings1.SettingsSaving += new SettingsSavingEventHandler(
                                            frmSettings1_SettingsSaving);

        //Data bind settings properties with straightforward associations.
        Binding bndBackColor = new Binding("BackColor", frmSettings1,
            "FormBackColor", true, DataSourceUpdateMode.OnPropertyChanged);
        this.DataBindings.Add(bndBackColor);
        Binding bndLocation = new Binding("Location", frmSettings1,
            "FormLocation", true, DataSourceUpdateMode.OnPropertyChanged);
        this.DataBindings.Add(bndLocation);

        // Assign Size property, since databinding to Size doesn't work well.
         this.Size = frmSettings1.FormSize;

        //For more complex associations, manually assign associations.
        String savedText = frmSettings1.FormText;
        //Since there is no default value for FormText.
        if (savedText != null)
            this.Text = savedText;
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        //Synchronize manual associations first.
        frmSettings1.FormText = this.Text + '.';
        frmSettings1.FormSize = this.Size;
        frmSettings1.Save();
    }

    private void btnBackColor_Click(object sender, EventArgs e)
    {
        if (DialogResult.OK == colorDialog1.ShowDialog())
        {
            Color c = colorDialog1.Color;
            this.BackColor = c;
        }
    }

    private void btnReset_Click(object sender, EventArgs e)
    {
        frmSettings1.Reset();
        this.BackColor = SystemColors.Control;
    }

    private void btnReload_Click(object sender, EventArgs e)
    {
        frmSettings1.Reload();
    }

    void frmSettings1_SettingChanging(object sender, SettingChangingEventArgs e)
    {
        tbStatus.Text = e.SettingName + ": " + e.NewValue;
    }

    void frmSettings1_SettingsSaving(object sender, CancelEventArgs e)
    {
        //Should check for settings changes first.
        DialogResult dr = MessageBox.Show(
                        "Save current values for application settings?",
                        "Save Settings", MessageBoxButtons.YesNo);
        if (DialogResult.No == dr)
        {
            e.Cancel = true;
        }
    }
}

//Application settings wrapper class
sealed class FormSettings : ApplicationSettingsBase
{
    [UserScopedSettingAttribute()]
    public String FormText
    {
        get { return (String)this["FormText"]; }
        set { this["FormText"] = value; }
    }

    [UserScopedSettingAttribute()]
    [DefaultSettingValueAttribute("0, 0")]
    public Point FormLocation
    {
        get { return (Point)(this["FormLocation"]); }
        set { this["FormLocation"] = value; }
    }

    [UserScopedSettingAttribute()]
    [DefaultSettingValueAttribute("225, 200")]
    public Size FormSize
    {
        get { return (Size)this["FormSize"]; }
        set { this["FormSize"] = value; }
    }

    [UserScopedSettingAttribute()]
    [DefaultSettingValueAttribute("LightGray")]
    public Color FormBackColor
    {
        get { return (Color)this["FormBackColor"]; }
        set { this["FormBackColor"] = value; }
    }
}

Remarques

ApplicationSettingsBase ajoute la fonctionnalité suivante à la SettingsBase classe , qui est utilisée par les applications web :

  • Possibilité de détecter des attributs sur une classe wrapper de paramètres dérivée. ApplicationSettingsBase prend en charge le modèle déclaratif utilisé pour les propriétés de classe wrapper, comme décrit plus loin.

  • Méthodes et Reload de niveau Save supérieur.

  • Événements de validation supplémentaires que vous pouvez gérer pour garantir l’exactitude des paramètres individuels.

Dans l’architecture des paramètres d’application, pour accéder à un groupe de propriétés de paramètres, vous devez dériver une classe wrapper concrète à partir de ApplicationSettingsBase. La classe wrapper se personnalise ApplicationSettingsBase de la manière suivante :

  • Pour chaque propriété de paramètres accessible, une propriété publique fortement typée correspondante est ajoutée à la classe wrapper. Cette propriété a get des accesseurs et set pour les paramètres d’application en lecture/écriture, mais uniquement un get accesseur pour les paramètres en lecture seule.

  • Les attributs appropriés doivent être appliqués aux propriétés publiques de la classe wrapper pour indiquer les caractéristiques de la propriété settings, telles que l’étendue du paramètre (application ou utilisateur), si le paramètre doit prendre en charge l’itinérance, la valeur par défaut du paramètre, le fournisseur de paramètres à utiliser, etc. Chaque propriété est requise pour spécifier son étendue, à l’aide de ApplicationScopedSettingAttribute ou UserScopedSettingAttributede . Les paramètres étendus à l’application sont en lecture seule si la valeur par défaut LocalFileSettingsProvider est utilisée.

La ApplicationSettingsBase classe utilise la réflexion pour détecter ces attributs au moment de l’exécution. La plupart de ces informations sont transmises à la couche du fournisseur de paramètres, qui est responsable du stockage, du format de persistance, etc.

Lorsqu’une application a plusieurs classes wrapper de paramètres, chaque classe définit un groupe de paramètres. Chaque groupe présente les caractéristiques suivantes :

  • Un groupe peut contenir n’importe quel nombre ou type de paramètres de propriété.

  • Si le nom du groupe n’est pas explicitement défini par la décoration de la classe wrapper avec un SettingsGroupNameAttribute, un nom est généré automatiquement.

Par défaut, toutes les applications clientes utilisent pour fournir du LocalFileSettingsProvider stockage. Si un autre fournisseur de paramètres est souhaité, la classe ou la propriété wrapper doit être décorée avec un correspondant SettingsProviderAttribute.

Pour plus d’informations sur l’utilisation des paramètres d’application, consultez Paramètres d’application pour Windows Forms.

Constructeurs

ApplicationSettingsBase()

Initialise une instance de la classe ApplicationSettingsBase dans son état par défaut.

ApplicationSettingsBase(IComponent)

Initialise une instance de la classe ApplicationSettingsBase à l'aide du composant propriétaire fourni.

ApplicationSettingsBase(IComponent, String)

Initialise une instance de la classe ApplicationSettingsBase à l'aide du composant propriétaire et de la clé de paramètres fournis.

ApplicationSettingsBase(String)

Initialise une instance de la classe ApplicationSettingsBase à l'aide de la clé de paramètres fournie.

Propriétés

Context

Obtient le contexte de paramètres d'application associé au groupe de paramètres.

IsSynchronized

Obtient une valeur indiquant si l'accès à l'objet est synchronisé (thread-safe).

(Hérité de SettingsBase)
Item[String]

Obtient ou définit la valeur de la propriété de paramètres d'application spécifiée.

Properties

Obtient la collection de propriétés de paramètres dans le wrapper.

PropertyValues

Obtient une collection de valeurs de propriété.

Providers

Obtient la collection de fournisseurs de paramètres d'application utilisée par le wrapper.

SettingsKey

Obtient ou définit la clé de paramètres pour le groupe de paramètres d'application.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetPreviousVersion(String)

Retourne la valeur de la propriété de paramètres nommée pour la version antérieure de la même application.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Initialize(SettingsContext, SettingsPropertyCollection, SettingsProviderCollection)

Initialise les propriétés internes utilisées par l'objet SettingsBase.

(Hérité de SettingsBase)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnPropertyChanged(Object, PropertyChangedEventArgs)

Déclenche l’événement PropertyChanged.

OnSettingChanging(Object, SettingChangingEventArgs)

Déclenche l’événement SettingChanging.

OnSettingsLoaded(Object, SettingsLoadedEventArgs)

Déclenche l’événement SettingsLoaded.

OnSettingsSaving(Object, CancelEventArgs)

Déclenche l’événement SettingsSaving.

Reload()

Actualise les valeurs de propriétés de paramètres d'application à partir du stockage persistant.

Reset()

Restaure les valeurs de paramètre d'application persistantes à leurs propriétés par défaut correspondantes.

Save()

Stocke les valeurs actuelles des propriétés de paramètres d'application.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
Upgrade()

Met à jour des paramètres d'application de façon à refléter une installation plus récente de l'application.

Événements

PropertyChanged

Se produit après que la valeur d'une propriété de paramètres d'application a été modifiée.

SettingChanging

Se produit avant que la valeur d'une propriété de paramètres d'application ait été modifiée.

SettingsLoaded

Se produit après que les paramètres d'application ont été récupérés à partir du stockage.

SettingsSaving

Se produit avant que des valeurs soient enregistrées dans le magasin de données.

S’applique à

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

Voir aussi