C# - Apresentando e usando o controle MaskedTextBox
O controle MaskedTextBox permite que apliquemos uma máscara a um controle TextBox definindo um formato para a entrada de dados. |
A entrada de dados em um formulário Windows talvez seja a tarefa mais corriqueira que existe, afinal vivemos preenchendo estes benditos formulários a vida inteira.
Neste artigo vamos conhecer o controle MaskedTextBox da linguagem C#.
Recurso usado
O controle MaskedTextBox foi projetado para ajudar o usuário ao preencher um formulário com dados em uma aplicação Windows Forms.
A propriedade Mask do controle recebe uma string que define a máscara de entrada para o controle e usando a esta propriedade você pode especificar critérios sem escrever qualquer lógica de validação personalizada em seu aplicativo tais como:
Esta propriedade permite que você defina uma string que representa o formato exigido para a seqüência de entrada colocado no MaskedTextBox. O valor padrão é uma seqüência vazia, que permite que qualquer entrada.
Quando um controle MaskedTextBox é exibido em tempo de execução, ele representa a máscara como uma série de caracteres de entrada e caracteres literais opcionais.
Cada posição de máscara editáveis, que representa uma entrada obrigatória ou opcional, é mostrada com um único caractere de aviso. Por exemplo, o sinal numérico (#) é geralmente usado como um espaço reservado para uma entrada de caractere numérico. Você pode usar a propriedade para especificar um caractere de prompt personalizado.
Se o usuário informar um caractere incorreto o controle irá emitir um aviso sonoro se a propriedade BeepOnError estiver definida como True e o evento MaskInputRejected será disparado de forma que você poderá personalizar o tratamento da entrada incorreta.
Você pode usar a propriedade MaskFull para verificar se o usuário inseriu todas a entrada necessária;
A propriedade Text sempre irá recuperar a entrada do usuário formatada de acordo com a máscara e a propriedade TextMaskFormat.
Em uma aplicação Windows Forms usando a linguagem C#, ao arrastar o controle a partir da Toolbox e soltá-lo no formulário podemos selecionar a guia MaskedTextBox Tasks e veremos o link Set Mask...
Clicando neste link teremos acesso à janela Input Mask onde poderemos definir o formato da máscara a ser aplicada ao controle.
Temos algumas máscaras pré-definidas e podemos criar uma máscara conforme a nossa necessidade:
A propriedade Mask controla o formato dos dados e a validação dos caracteres dos dados:
Podemos definir a propriedade Mask usando as opções acima ou fazer isso via código :
this.maskedTextBox1.Mask
= "00000-9999";
this.maskedTextBox2.Mask = "R$ 999.999,00";
this.maskedTextBox3.Mask = "(999)000-0000";
A propriedade Mask deve ser uma seqüência de caracteres composta de um ou mais elementos, como mostrado na tabela a seguir :
# - Você pode digitar +/- [Opcional]
0 - Digitar zero to 9 [Requerido]
9 - Digitar 0 - 9 [Opcional]
A - Alfanumérico. [Requerido]
a - Alfanumérico. [Opcional]
L - Letras a-z, A-Z [Requerido]
? - Letras a-z, A-Z [Opcional]
C - Qualquer caractere não controlado [Opcional]
O padrão de símbolos decimal (.), milhares (,), tempo (:), data (/), e moeda ($) que serão exibidos são definidos pela localização da aplicação. Você pode forçá-los a mostrar símbolos de outra localização usando a propriedade FormatProvider.
A propriedade FormatProvider determina quais símbolos são usados para a moeda, data e outros espaços reservados da máscara de cultura específica quando ocorre a validação de tipo e o controle tem um valor não nulo para propriedade ValidatingType.
A inserção de caracteres na máscara em tempo de execução é controlada pela propriedade InsertKeyMode. O estado dessa propriedade é definido pela enumeração InsertKeyMode (Default, Insert ou OverWrite) a qual pode estar sempre ativada, desativada ou definido para respeitar a configuração do teclado do usuário.
Exemplo de aplicação Windows Forms usando MaskedTextBox
Abra o VS 2013 Express for Windows desktop e crie um novo projeto usando a linguagem C# e o template Windows Forms Applicaton com o nome MaskedTextBox.
No formulário Windows vamos definir alguns controles MaskedTextBox usando as máscaras mais comumente usadas:
Controles usados:
|
O código associado ao evento Click de cada um dos botões aplica a máscara ao controle - mskTextBox - e exibe a formatação usada no controle lblMascaraAtiva :
using System;
using System.Windows.Forms;
namespace MaskedTextBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnHora_Click(object sender, EventArgs e)
{
this.mskTextBox.Mask = "00:00";
this.lblMascaraAtiva.Text = this.mskTextBox.Mask;
this.mskTextBox.Focus();
}
private void btnCep_Click(object sender, EventArgs e)
{
this.mskTextBox.Mask = "00000-9999";
this.lblMascaraAtiva.Text = this.mskTextBox.Mask;
this.mskTextBox.Focus();
}
private void btnMoeda_Click(object sender, EventArgs e)
{
this.mskTextBox.Mask = "$ 999,999.00";
this.lblMascaraAtiva.Text = this.mskTextBox.Mask;
this.mskTextBox.Focus();
}
private void btnData_Click(object sender, EventArgs e)
{
this.mskTextBox.Mask = "00/00/0000";
this.lblMascaraAtiva.Text = this.mskTextBox.Mask;
this.mskTextBox.Focus();
}
private void btnSenha_Click(object sender, EventArgs e)
{
// define a mascara para senha
this.mskTextBox.UseSystemPasswordChar = true;
this.mskTextBox.Mask = "000000";
this.lblMascaraAtiva.Text = this.mskTextBox.Mask;
this.mskTextBox.Focus();
}
private void btnTelefone_Click(object sender, EventArgs e)
{
this.mskTextBox.Mask = "(999)000-0000";
this.lblMascaraAtiva.Text = this.mskTextBox.Mask;
this.mskTextBox.Focus();
}
}
}
|
Naturalmente podemos definir diversas propriedades do controle MaskedTextBox usando a janela de propriedades do controle.
Pegue o projeto completo aqui: MaskedTextBox.zip
Mat 7:15 Guardai-vos dos falsos profetas, que vêm a vós disfarçados em ovelhas, mas interiormente são lobos devoradores.
Mat 7:16 Pelos seus frutos os conhecereis. Colhem-se, porventura, uvas dos espinheiros, ou figos dos abrolhos?
Mat 7:17 Assim, toda árvore boa produz bons frutos; porém a árvore má produz frutos maus.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: