Поделиться через


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

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

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

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

Для правильного сохранения параметров элемент управления должен инкапсулировать процесс, создав собственный класс оболочки параметров выделенных приложений, производный от ApplicationSettingsBase. Кроме того, основной класс управления должен реализовать IPersistComponentSettings. Интерфейс содержит несколько свойств, а также два метода, LoadComponentSettings и SaveComponentSettings. Если вы добавите элемент управления в форму с помощью конструктора Windows Forms в Visual Studio, Windows Forms будет вызывать 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, будут использовать те же параметры совместно.

См. также