12 de abril de 2008

Máscaras Dinâmicas para textBox com qualquer tipo numérico ( CEP , CPF, CNPJ, MOEDA , DATA), desenvolvido em C#.net (C Sharp)

12495-assbartjava2a Visando facilitar a vida de quem trabalha com desenvolvimento criei este artigo descrevendo passo-a-passo e elucidando através de código fonte uma maneira dinâmica e eficaz de aplicar máscaras a conteúdos numéricos de qualquer tipo em um texBox, utilizando C# (C Sharp).

Máscara, neste caso em questão, é um recurso de interface utilizado para assemelhar determinada informação(neste exemplo, numérica), visível no sistema, a maneira como estamos acostumados a manipulá-la na vida real.

Por exemplo, ao ver o número "00000000" inicialmente não podemos atribuir nenhuma informação característica adicional a ele, fora o fato de se constituir de uma cadeia numérica. Aplicando uma máscara, através da interface visual do sistema teremos "00000-000", o que pode nos levar a deduzir que este número se trata de um CEP. Este recurso é muito importante na prevenção de erros por parte do usuário assegurando ao mesmo a não necessidade de digitação de determinados dígitos que possam gerar equívocos durante a inserção dos dados no sistema.

Visando dinamizar este processo de "mascarar" um dado numérico em tempo real criei uma função principal que é capaz de adicionar uma mascara de qualquer tipo (CEP, CPF, CNPJ), o que pode facilitar a vida de alguns desenvolvedores, que como eu, inicialmente encontraram poucas referências a respeito.

Mas por que não usar um MaskedTextBox? Eu considero o MakedTextBox um tipo de textBox meio "engessado", com algumas limitações, e para o meu caso em questão achei mais eficiente a criação deste código fonte para manipulação do textBox.

Seguem abaixo algumas características do resultado expresso pelo código que será descrito:

- a inserção dos números ocorre da direita para a esquerda. Sendo assim num campo do tipo moeda (0,00) a inserção de seguidos "2" transcorreria da seguinte maneira:

0,02 -> 0,22 -> 2,22 -> 22,22

- a tecla BackSpace também se sucede da direita para a esquerda (sem perda visual da mascara) da seguinte maneira:

2,22 -> 0,22 -> 0,02

Acompanhem agora o detalhamento do código em questão:

Como exemplo, aplicarei máscara a dois tipos de dados: O CEF ("12345-678"), e o CNPJ("12345678/1234-12"). Note que no caso do CNPJ apresentam-se dois caracteres especiais. Farei isso para mostrar que o código abaixo pode aplicar a mascara com quantos caracteres forem necessários, bastando para isso definir a quantidade na chamada da função.

Para saber mais a respeito basta baixar o arquivo abaixo, em formato .doc, onde descrevo detalhamente o desenvolvimento deste código:

png5

Um bom desenvolvimento a todos...

5 comentários:

MoorpheuSs disse...

Olá amigo.

Estou atrás de pessoas interessadas em fazer uma "Postagem parceira".

Eu tenho uma série de posts sobre "Termos de informática", onde semanalmente eu posto sobre algum termo de informática voltado para pessoas mais leigas, tendo objetivo de passar informações claras e objetivas, numa linguagem simples para facilitar o entendimento.

Se você tiver interesse em fazer um post, favor me procurar para acertarmos os detalhes.

Links das postagens já publicadas:
http://moorpheuss.blogspot.com/2008/03/termos-de-informtica-1-vrus.html
http://moorpheuss.blogspot.com/2008/03/termos-de-informtica-2-redes-wireless.html
http://moorpheuss.blogspot.com/2008/04/termos-de-informtica-3-bios.html


Abraços.


--
Marcelo Souza

http://moorpheuss.blogspot.com/

jujuzinh@ disse...

tem um selinhu p vc no meu blog...bjs!!!

Rafael Costa disse...

www.linhadecodigo.com.br/Artigo.aspx?id=1786

xupinhado

Anônimo disse...

O que Rafael falou é verdade, este artigo já existe no linha defensiva.

http://www.linhadecodigo.com.br/artigo/1786/csharp-mascaras-dinamicas-para-textbox-com-qualquer-tipo-numerico-cep-cpf-cnpj-moeda-data.aspx


É vero xupinhado....

Anônimo disse...

Cara que merda este crockotec, não se consegue fazer o donsloan nem fudendo !!!! coloca em um lugar que preste os arquivos.

Abços

Alessandro