Como: Validar configurações de 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 |
---|---|
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. |
|
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. |
|
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. |
|
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 (Visual Basic).
- 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
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
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
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
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