Compartilhar via


Configurações do aplicativo para controles personalizados

Você deve concluir determinadas tarefas para fornecer aos seus controles personalizados a capacidade de persistir as configurações do aplicativo quando os controles são hospedados em aplicativos de terceiros.

A maior parte da documentação sobre a funcionalidade Configurações do Aplicativo é escrita sob a suposição de que você está criando um aplicativo autônomo. No entanto, se você estiver criando um controle que outros desenvolvedores hospedarão em seus aplicativos, você precisará executar algumas etapas adicionais para que seu controle persista 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 dedicados, derivada de ApplicationSettingsBase. Além disso, a classe de controle principal deve implementar a IPersistComponentSettings. A interface contém várias propriedades LoadComponentSettings assim como dois métodos SaveComponentSettings. Se você adicionar seu controle a um formulário usando o Designer de Formulários do Windows no Visual Studio, o Windows Forms chamará LoadComponentSettings automaticamente quando o controle for inicializado; você deverá chamar SaveComponentSettings no método Dispose do seu controle.

Além disso, você deve implementar o seguinte para que as configurações de aplicativo para 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 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 no mesmo formulário. Na maioria das vezes, você desejará que esses controles persistam suas próprias configurações individuais. Com a propriedade SettingsKey em IPersistComponentSettings, você pode fornecer uma string exclusiva que serve 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 propriedade SettingsKey da classe ApplicationSettingsBase. As Configurações de Aplicativo usam essa chave exclusiva quando ela persiste as configurações do usuário para XML. O exemplo de código a seguir mostra como uma <userSettings> seção pode procurar uma instância de um controle personalizado chamado CustomControl1 que salva uma configuração para sua Text propriedade.

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

Qualquer caso de um controle que não forneça um valor para SettingsKey compartilhará as mesmas configurações.

Consulte também