Partilhar via


Configurações do aplicativo para controles personalizados

Você deve concluir determinadas tarefas para dar aos seus controles personalizados a capacidade de persistir as 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 é 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 o seu controlo persista adequadamente nas suas configurações, deve encapsular o processo criando a sua própria classe dedicada para encapsulamento de configurações de aplicações, 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 o Windows Forms Designer no Visual Studio, o Windows Forms chamará LoadComponentSettings automaticamente quando o controle for inicializado; Você deve chamar SaveComponentSettings si mesmo no método Dispose de seu controle.

Além disso, você deve implementar o seguinte para que as configurações do 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 seu aplicativo. Quando você cria uma nova instância dessa classe, passe seu 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 do aplicativo.

Teclas de configurações e configurações compartilhadas

Alguns controles podem ser usados várias vezes dentro do 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. Quando você carrega ou salva as configurações do controle, você passa o valor de SettingsKey para a propriedade SettingsKey da classe ApplicationSettingsBase. As Configurações da Aplicação usam esta chave exclusiva quando gravam as configurações do utilizador em XML. O exemplo de código a seguir mostra como uma seção <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.

Ver também