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.

Grande parte da documentação do recurso de 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 o IPersistComponentSettings. A interface contém várias propriedades, bem como dois métodos, LoadComponentSettings e SaveComponentSettings. Se você adicionar seu controle a um formulário usando Designer de Formulários do Windows no Visual Studio, o Windows Forms chamará LoadComponentSettings automaticamente quando o controle for inicializado; você deve chamar SaveComponentSettings por si mesmo no método Dispose de 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 como um ú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 Load do 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 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 propriedade Name 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 seção de <userSettings> pode procurar 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.

Consulte também