Partager via


Paramètres d’application pour les contrôles personnalisés

Vous devez effectuer certaines tâches pour permettre à vos contrôles personnalisés de conserver les paramètres d’application lorsque les contrôles sont hébergés dans des applications tierces.

La plupart de la documentation sur la fonctionnalité Paramètres d’application est écrite en supposant que vous créez une application autonome. Toutefois, si vous créez un contrôle que d’autres développeurs hébergeront dans leurs applications, vous devez effectuer quelques étapes supplémentaires pour que votre contrôle conserve correctement ses paramètres.

Paramètres d’application et contrôles personnalisés

Pour que votre contrôle conserve correctement ses paramètres, il doit encapsuler le processus en créant sa propre classe wrapper de paramètres d’applications dédiées, dérivée de ApplicationSettingsBase. En outre, la classe de contrôle principale doit implémenter la IPersistComponentSettings. L’interface contient plusieurs propriétés ainsi que deux méthodes, LoadComponentSettings et SaveComponentSettings. Si vous ajoutez votre contrôle à un formulaire à l’aide du concepteur Windows Forms dans Visual Studio, Windows Forms appelle LoadComponentSettings automatiquement lorsque le contrôle est initialisé ; vous devez appeler SaveComponentSettings vous-même dans la méthode Dispose de votre contrôle.

En outre, vous devez implémenter les éléments suivants pour que les paramètres d’application pour que les contrôles personnalisés fonctionnent correctement dans des environnements au moment du design, tels que Visual Studio :

  1. Classe de paramètres d’application personnalisée avec un constructeur qui prend un IComponent en tant que paramètre unique. Utilisez cette classe pour enregistrer et charger tous les paramètres de votre application. Lorsque vous créez une instance de cette classe, passez votre contrôle personnalisé à l’aide du constructeur.

  2. Créez cette classe de paramètres personnalisés une fois le contrôle créé et placé sur un formulaire, par exemple dans le gestionnaire d’événements Load du formulaire.

Pour obtenir des instructions sur la création d’une classe de paramètres personnalisés, consultez Guide pratique pour créer des paramètres d’application.

Clés de paramètres et paramètres partagés

Certains contrôles peuvent être utilisés plusieurs fois dans le même formulaire. La plupart du temps, vous souhaiterez que ces contrôles conservent leurs propres paramètres individuels. Avec la propriété SettingsKey sur IPersistComponentSettings, vous pouvez fournir une chaîne unique qui agit pour lever l’ambiguïté de plusieurs versions d’un contrôle sur un formulaire.

La façon la plus simple d’implémenter SettingsKey consiste à utiliser la propriété Name du contrôle pour le SettingsKey. Lorsque vous chargez ou enregistrez les paramètres du contrôle, vous transmettez la valeur de SettingsKey à la propriété SettingsKey de la classe ApplicationSettingsBase. Les paramètres d’application utilisent cette clé unique lorsqu’il conserve les paramètres de l’utilisateur au format XML. L’exemple de code suivant montre comment une section <userSettings> peut rechercher une instance d’un contrôle personnalisé nommé CustomControl1 qui enregistre un paramètre pour sa propriété Text.

<userSettings>
    <CustomControl1>
        <setting name="Text" serializedAs="string">
            <value>Hello, World</value>
        </setting>
    </CustomControl1>
</userSettings>

Toutes les instances d’un contrôle qui ne fournissent pas de valeur pour SettingsKey partageront les mêmes paramètres.

Voir aussi