quinta-feira, 5 de agosto de 2010

Entenda e aprenda a usar o controle MaskedTextBox

Um controle MaskedTextBox é um TextBox com características que permitem a criação de máscaras de entrada de dados com o propósito de validar as informações fornecidas pelos usuários. Veja a posição desta classe na hierarquia de classes da plataforma .NET:


System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Windows.Forms.Control
        System.Windows.Forms.TextBoxBase
          System.Windows.Forms.MaskedTextBox

Em tempo de design, um controle MaskedTextBox pode ser criado simplesmente clicando-se em seu nome na Toolbox, na seção Common Controls. Depois de colocado no formulário nós podemos acessar sua propriedade Mask na janela de propriedades e escolher a máscara de entrada desejada. Ao clicarmos no botão ao lado do valor da propriedade Mask um editor de máscaras (Input Mask) é exibido. Neste editor podemos experimentar várias máscaras e ver o resultado imediado.

Uma máscara para entrada de data no formato 23/04/2010 pode ser definida em tempo de execução da seguinte forma:

private void button1_Click(object sender, EventArgs e){
  // vamos definir a máscara para uma data no formato 12/03/2010
  maskedTextBox1.Mask = "00/00/0000";
}

Quando você executar este exemplo e clicar no botão, verá que o MaskedTextBox exibirá os sublinhados característicos dos campos de texto com máscaras e aceitará somente valores inteiros. Note que as barras são literais e, portanto, serão preenchidas automaticamente, antes ou à medida que o usuário prossegue com a digitação dos valores desejados.

Quando obtemos o valor inserido em um MaskedTextBox, os caracteres literais (em nosso exemplo, as barras de separação dos itens da data) são lidos também. Veja:

private void button2_Click(object sender, EventArgs e){
  // vamos obter o conteúdo do MaskedTextBox
  MessageBox.Show("O conteúdo do MaskedTextBox é: " +
    maskedTextBox1.Text);
}

Controles MaskedTextBox são úteis quando precisamos efetuar as seguintes tarefas:

a) Entrada obrigatória de determinados caracteres, dígitos ou símbolos;

b) Entrada opcional de determinados caracteres, dígitos ou símbolos;

c) Validar um determinado caractere em uma determinada posição na máscara. Por exemplo, um dígito, uma letra do alfabeto ou um caractere alfanumérico;

d) Exibir e manter literais de máscaras, ou caracteres que devem aparecer diretamente no MaskedTextBox. Por exemplo, os hífens (-) nos números de telefones ou o símbolo de moeda (R$) em valores que representam preços;

e) Processamento especial de caracteres de entrada. Por exemplo, converter caracteres em minúsculos para letras maiúsculas.
by:Splinter

Nenhum comentário: