Como: Validar configurações do aplicativo

Este tópico mostra como validar configurações do aplicativo antes que elas sejam salvas.

Como as configurações do aplicativo são de tipos fortes, você pode ter certa confiança de que os usuários não podem atribuir um dado de tipo incorreto a uma configuração.No entanto, um usuário ainda pode tentar atribuir um valor a uma propriedade que esteja fora do limite aceitável — por exemplo, fornecer uma data de nascimento que ocorra no fururo.ApplicationSettingsBase, a classe pai de todas as classes de configurações do aplicativo, expões quantro eventos para permitir estas verificações de limites.Manipular estes eventos dispõe todo o seu código de validação em um único local, em vez de espalhá-lo pelo seu projeto.

Os eventos que você utiliza dependem de quando você precisa validar suas configurações, conforme descrito na tabela seguinte.

Evento

Ocorrência de Uso

SettingsLoaded

Ocorre depois do carregamento inicial de um grupo de propriedade de configuração.

Use este evento para validar valores iniciais do grupo de propriedades inteiro anes que elas sejam usadas no seu aplicativo.

SettingChanging

Ocorre antes que o valor de uma única propriedade é alterado.

Use este evento para validar uma única propriedade antes que ela seja alterada.Ele pode prover feedback imediato aos usuários a respeito de suas ações e escolhas.

PropertyChanged

Ocorre depois que o valor de uma única propriedade de configuração é alterado.

Use este evento para validar uma única propriedade depois que ela é alterada.Este evento raramente é usado para valdação a não ser que um processo de validação longo e assíncrono é requerido.

SettingsSaving

Ocoor antes que o grupo de propriedades de configuração é armazenado.

Use este evento para validar valores do grupo de propriedades inteiro antes que ele seja salvo no disco.

Tipicamente, você não usará todos estes eventos no mesmo aplicativo com propósito de validação.Por exemplo, frequentemente é possível completar os requerimentos de validação manipulando somente o evento SettingChanging.

Um manipulador de eventos geralmente executa uma das seguintes ações quando ele detecta um valor inválido:

  • Automaticamente fornece um valor tido como correto, como o valor padrão.

  • Requisita novamente ao usuário do código do servidor as informações.

  • Para eventos gerado antes de suas ações associadas, como SettingChanging e SettingsSaving, use o argumento CancelEventArgs para cancelar a operação.

Para mais informações sobre manipulação de eventos, consulte Visão geral dos Manipuladores de Eventos (Formulários do Windows).

Os procedimentos a seguir mostram como testar se é uma data de nascimento é válida usando os eventos SettingChanging ou SettingsSaving.Os procedimentos foram escritos sob a consideração de que você já criou sua configuração do aplicativo; neste exemplo, realizaremos uma verificação de limites em uma configuração chamada DateOfBirth.Para mais informações sobre a criação de configurações, consulte Como: Criar configurações do aplicativo.

Para obter o objeto de configurações do aplicativo

  • Obtenha uma referência ao objeto de configurações do aplicativo (a instância do envoltório) completando um dos seguintes itens:

    • Se você criou suas configurações usando a caixa de diálogo de Configurações do Aplicativo do Visual Studio no Editor de Propriedades, você pode recuperar o objeto de configurações padrão para sua linguagem através da seguinte expressão.

      Configuration.Settings.Default 
      
      MySettings.Default 
      

      - ou -

    • Se você é um desenvolvedor em Visual Basic e criou as configurações do seu aplicativo usando o Designer de Projetos, você pode recuperar estas informações ussando o Objeto My.Settings.

      - ou -

    • Se você criou suas configurações derivando de ApplicationSettingsBase diretamente, você precisa instanciar sua classe manualmente.

      MyCustomSettings settings = new MyCustomSettings();
      
      Dim Settings as New MyCustomSettings()
      

Os procedimentos a seguir foram escritos sob a consideração de que o objeto de configurações do aplicativo foi obtido completando-se o último item neste procedimento.

Para validar uma Configuração do Aplicativo quando uma configuração é alterada

  1. Se você é um desenvolvedor C#, no evento Load de seu formulário ou controle, adicione um manipulador de eventos para o evento SettingChanging.

    - ou -

    Se você é um desenvolvedor Visual Basic, você deve declarar a variável Settings usando a palavra chave WithEvents.

    public void Form1_Load(Object sender, EventArgs e) 
    {
        settings.SettingChanging += new SettingChangingEventHandler(MyCustomSettings_SettingChanging);
    }
    
    Public Sub Form1_Load(sender as Object, e as EventArgs)
        AddHandler settings.SettingChanging, AddressOf MyCustomSettings_SettingChanging
    End Sub 
    
  2. Defina o manipulador de eventos e escreva o código dentro do mesmo para realizar a verificação de limite na data de nascimento.

    private void MyCustomSettings_SettingChanging(Object sender, SettingChangingEventArgs e)
    {
        if (e.SettingName.Equals("DateOfBirth")) {
            Date newDate = (Date)e.NewValue;
            If (newDate > Date.Now) {
                e.Cancel = true;
                // Inform the user.
            }
        }
    }
    
    Private Sub MyCustomSettings_SettingChanging(sender as Object, e as SettingChangingEventArgs) Handles Settings.SettingChanging
        If (e.SettingName.Equals("DateOfBirth")) Then
            Dim NewDate as Date = CType(e.NewValue, Date)
            If (NewDate > Date.Now) Then
                e.Cancel = True
                ' Inform the user.
            End If
        End If
    End Sub
    

Para validar as Configurações do Aplicativo quando Salvar ocorre

  1. No evento Load de seu controle ou formulário, adicione um manipulador de eventos para o evento SettingsSaving.

    public void Form1_Load(Object sender, EventArgs e) 
    {
        settings.SettingsSaving += new SettingsSavingEventHandler(MyCustomSettings_SettingsSaving);
    }
    
    Public Sub Form1_Load(Sender as Object, e as EventArgs)
        AddHandler settings.SettingsSaving, AddressOf MyCustomSettings_SettingsSaving
    End Sub
    
  2. Defina o manipulador de eventos e escreva o código dentro do mesmo para realizar a verificação de limite na data de nascimento.

    private void MyCustomSettings_SettingsSaving(Object sender, SettingsSavingEventArgs e)
    {
        if (this["DateOfBirth"] > Date.Now) {
            e.Cancel = true;
        }
    }
    
    Private Sub MyCustomSettings_SettingsSaving(Sender as Object, e as SettingsSavingEventArgs)
        If (Me["DateOfBirth"] > Date.Now) Then
            e.Cancel = True
        End If
    End Sub
    

Consulte também

Tarefas

Como: Criar configurações do aplicativo

Outros recursos

Criando Manipuladores de Eventos nos Formulários do Windows