Configurações do Aplicativo para Controles Personalizados
Você deve realizar determinadas tarefas para dar aos seus controles personalizados a capacidade de persistir configurações do aplicativo quando os controles são hospedados em aplicativos de terceiros.
A maioria da documentação sobre o recurso Configurações do Aplicativo é gravada supondo que você está criando um aplicativo autônomo. No entanto, se você estiver criando um controle que outros desenvolvedores irão hospedar em seus aplicativos, você precisará executar algumas etapas adicionais para o controle para manter suas configurações corretamente.
Configurações do Aplicativo para Controles Personalizados
Para seu controle persistir suas configurações corretamente, ele deve encapsular o processo criando sua própria classe envoltório de configurações aplicativos dedicada, derivado de ApplicationSettingsBase. Além disso, a classe de controle principal deve implementar o IPersistComponentSettings. A interface apresenta diversas propriedades, bem como dois métodos, LoadComponentSettings e SaveComponentSettings. Se você adicionar o controle a um formulário usando o Windows Forms Designer do Visual Studio, os Formulários do Windows chamarão LoadComponentSettings automaticamente quando o controle é inicializado; você deve chamar SaveComponentSettings você mesmo o método Dispose do seu controle.
Além disso, você deve implementar o procedimento a seguir na ordem para as configurações do aplicativo para que os controles personalizados funcionem corretamente em ambientes em tempo de design como Visual Studio:
Uma classe personalizada de configurações do aplicativo com um construtor que utiliza um IComponent como um único parâmetro. Use esta classe para salvar e carregar todos as configurações do aplicativo. Quando você cria uma nova instância da classe, passe seu controle personalizado usando o construtor.
Crie esta classe de configurações personalizada depois que o controle foi criado e colocado em um formulário, como no manipulador de eventos Load do formulário.
Para obter instruções sobre como criar uma classe configurações personalizada, consulte Como: Criar configurações do aplicativo.
Configurações Chaves e Configurações Compartilhadas
Alguns controles podem ser usados várias vezes dentro do mesmo formulário. Na maioria das vezes, você desejará que estes controles persistam suas próprias configurações individuais. Com a propriedade SettingsKey no IPersistComponentSettings, você pode fornecer uma string exclusiva que funciona para desambiguar várias versões de um controle em um formulário.
A maneira mais simples para implementar SettingsKey é utilizar a propriedade Name do controle para o SettingsKey. Quando você carregar ou salvar as configurações do controle, você passa o valor de SettingsKey adiante para a propriedade SettingsKey da classe ApplicationSettingsBase. As Configurações de Aplicativo usam essa chave exclusiva quando ele persiste configurações do usuário para XML. O código exemplo a seguir mostra a aparência de uma seção <userSettings> para uma instância de uma controle personalizado chamado CustomControl1 que salva uma configuração de sua propriedade Text .
<userSettings>
<CustomControl1>
<setting name="Text" serializedAs="string">
<value>Hello, World</value>
</setting>
</CustomControl1>
</userSettings>
Todas as instâncias de um controle que não forneça um valor para SettingsKey compartilhão as mesmas configurações.