Параметры приложения для пользовательских элементов управления

Чтобы предоставить пользовательским элементам управления возможность сохранять параметры приложения при размещении элементов управления в сторонних приложениях, необходимо выполнить определенные задачи.

Большая часть документации по функции «Параметры приложения» написана с расчетом на то, что вы создаете автономное приложение. Однако если вы создаете элемент управления, который другие разработчики будут размещать в своих приложениях, необходимо выполнить несколько дополнительных действий для правильного сохранения параметров элемента управления.

Параметры приложения и пользовательские элементы управления

Чтобы элемент управления правильно сохранил свои параметры, он должен инкапсулировать процесс, создав собственный класс-оболочку для параметров выделенных приложений, производный от ApplicationSettingsBase. Кроме того, основной класс управления должен реализовывать IPersistComponentSettings. Интерфейс содержит несколько свойств, а также два метода — LoadComponentSettings и SaveComponentSettings. При добавлении элемента управления в форму с помощью конструктора Windows Forms в Visual Studio LoadComponentSettings будет вызываться автоматически при инициализации элемента управления; SaveComponentSettings необходимо вызвать самостоятельно в методе Dispose вашего элемента управления.

Кроме того, необходимо реализовать следующие параметры приложения, чтобы пользовательские элементы управления работали правильно в средах времени разработки (таких как Visual Studio):

  1. Пользовательский класс параметров приложения с конструктором, который принимает IComponent в качестве одного параметра. Используйте этот класс для сохранения и загрузки всех параметров приложения. При создании нового экземпляра этого класса передайте пользовательский элемент управления с помощью конструктора.

  2. Создайте этот класс настраиваемых параметров после создания и размещения элемента управления в форме, например в обработчике событий формы Load.

Инструкцию по созданию класса настраиваемых параметров см. в разделе Справка: Создание параметров приложения.

Ключи параметров и общие параметры

Некоторые элементы управления можно использовать несколько раз в одной форме. В большинстве случаев эти элементы управления будут сохранять собственные параметры. Используя свойство SettingsKey на IPersistComponentSettings, вы можете указать уникальную строку, которая действует для отдельного обозначения нескольких версий элемента управления в форме.

Самый простой способ реализации SettingsKey — использовать свойство Name элемента управления для SettingsKey. При загрузке или сохранении параметров элемента управления вы передаете значение SettingsKey в свойство SettingsKey класса ApplicationSettingsBase. Параметры приложения используют этот уникальный ключ при сохранении параметров пользователя в XML. В следующем примере кода показано, как раздел <userSettings> может искать экземпляр пользовательского элемента управления с именем CustomControl1, который сохраняет параметр для свойства Text.

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

Все экземпляры элемента управления, которые не предоставляют значение для SettingsKey, будут совместно использовать одни и те же параметры.

См. также