Compartilhar via


Configurações do aplicativo para controles personalizados

É necessário concluir algumas tarefas para que os controles personalizados tenham a capacidade de persistir as configurações de aplicativo quando os controles estão hospedados em aplicativos de terceiros.

A maioria da documentação sobre o recurso de 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 hospedarão em seus aplicativos, será necessário executar algumas etapas adicionais para o controle persistir suas configurações corretamente.

Configurações do Aplicativo e Controles Personalizados

Para que seu controle persista corretamente suas configurações, ele deve encapsular o processo criando sua própria classe wrapper de configurações de aplicativos dedicada, derivada de ApplicationSettingsBase. Além disso, a classe de controle principal deve implementar o IPersistComponentSettings. A interface contém várias propriedades, LoadComponentSettings bem como dois métodos e SaveComponentSettings. Se você adicionar seu controle a um formulário usando o Windows Forms Designer no Visual Studio, o Windows Forms chamará LoadComponentSettings automaticamente quando o controle for inicializado, você deverá chamar SaveComponentSettings a Dispose si mesmo no método do seu controle.

Além disso, é necessário implementar o seguinte na ordem das configurações do aplicativo para que os controles personalizados funcionem corretamente em ambientes de tempo de design como o Visual Studio:

  1. Uma classe de configurações de aplicativo personalizada com um construtor que usa um como um IComponent único parâmetro. Use essa classe para salvar e carregar todas as configurações do aplicativo. Ao criar uma nova instância dessa classe, passe o controle personalizado usando o construtor.

  2. Crie essa classe de configurações personalizadas depois que o controle tiver sido criado e colocado em um formulário, como no manipulador de eventos do Load formulário.

Para obter instruções sobre como criar uma classe de configurações personalizadas, consulte Como Criar Configurações de Aplicativo.

Chaves de Configurações e Configurações Compartilhadas

Alguns controles podem ser usados várias vezes dentro do mesmo formulário. Na maioria das vezes, esses controles deverão persistir suas próprias configurações individuais. Com a propriedade ativada SettingsKeyIPersistComponentSettings, você pode fornecer uma cadeia de caracteres exclusiva que atua para desambiguar várias versões de um controle em um formulário.

A maneira mais simples de implementar SettingsKey é usar a Name propriedade do controle para o SettingsKey. Ao carregar ou salvar as configurações do controle, você passa o valor de SettingsKey para a SettingsKey propriedade da ApplicationSettingsBase classe. As Configurações do Aplicativo usam essa chave exclusiva ao persistir as configurações do usuário para XML. O exemplo de código a seguir mostra a possível aparência da seção <userSettings> para uma instância de um controle personalizado chamado CustomControl1, que salva uma configuração para 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 fornecem um valor para SettingsKey compartilharão as mesmas configurações.

Confira também