Este tópico falará sobre o componente MaskedTextBox. O próprio nome é bastante sugestivo para a sua função, pois ele nada mais é do que um TextBox “mascarado”. Ele define um padrão de entrada para dados. É como se fosse um molde inserido sobre um TextBox e que permite somente a inserção de dados padronizados. É muito simples de entender e usá-lo.

Vamos abrir a aplicação e em seguida o formulário de Cadastro de Clientes, que atualmente está da seguinte forma:

MaskedTextBox C#

Agora vamos deletar o TextBox de inserção da Data de Nascimento, deixando-o assim:

MaskedTextBox C#

Em seguida vamos arrastar um componente MaskedTextBox para o local onde estava o TextBox anterior e nomeá-lo para "mskDataNascimento", da seguinte forma:

MaskedTextBox C#

O aspecto visual do MaskedTextBox é muito parecido com o de um TextBox comum, no entanto podemos observar a pequena seta na parte superior, que indica a existência de um menu de opções vinculado a este componente. Clicando nela, teremos:

MaskedTextBox C#

E ao clicar na opção “Set Mask...”, teremos:

MaskedTextBox C#

Nesta tela definiremos a entrada da Máscara, ou seja, qual molde será colocado sobre o TextBox para limitar a inserção de dados. Como é possível observar na imagem acima, existem vários padrões, como para números inteiros, telefones, datas simples, datas com hora, apenas hora, CEP, além de ser possível personalizar uma máscara. Para o nosso caso selecionaremos Short date.

Ao clicar nela o Visual C# já preenche os campos Mask e Preview, na parte inferior da tela, dando-nos uma demonstração de como o campo será exibido ao usuário. Após clicarmos em OK veremos que o campo já se diferencia de um TextBox convencional, pois a máscara aparece inserida, conforme ilustra a imagem abaixo:

MaskedTextBox C#

A parte visual está pronta, no entanto devemos alterar o código e trocar todos os comandos que faziam referência ao TextBox para adaptá-los ao MaskedTextBox. O primeiro trecho em que isso deve ser feito é no método construtor sobrecarregado, que possui o trecho de código:

MaskedTextBox C#

Vejam que na imagem acima o TextBox que excluímos já aparece grifado, pois ele não é mais encontrado pela aplicação.

A alteração que devemos fazer neste trecho é:

MaskedTextBox C#

O segundo trecho que deve ser alterado é dentro do código referente do evento Click do botão "Salvar". O método formataData passava como parâmetro o conteúdo do TextBox, mas agora deve passar o conteúdo do MaskedTextBox, devendo ser alterado como ilustra a imagem abaixo:

MaskedTextBox C#

O mesmo deve ser feito para o código do evento Click do botão "Atualizar".

MaskedTextBox C#

Agora é possível executar a aplicação. Notem que, ao manipular os dados no componente MaskedTextBox, é impossível inserir mais caracteres do que os correspondentes às datas, é impossível inserir letras e já existem as barras separando os dias, meses e anos, o que torna mais fácil a visualização para o usuário.

Validando o campo MaskedTextBox

Validar um campo do tipo MaskedTextBox é muito fácil. Para isso vamos fazer uso do evento TypeValidationCompleted, como ilustra a imagem abaixo:

MaskedTextBox C#

Clicando duas vezes sobre ele criaremos o método de mesmo nome. Dentro dele colocaremos o seguinte código:

MaskedTextBox C#

Comentando, teremos:

MaskedTextBox C#

Agora, se tentarmos efetuar a inserção de uma data inválida, receberemos a mensagem de erro contida no bloco else.

MaskedTextBox C#

Nossa validação está quase pronta. Eu digo "quase" porque se o usuário não digitar nada no MaskedTextBox ainda teremos um erro gerado, pois a validação pelo método TypeValidationCompleted só acontece quando um caractere é digitado. Existem várias maneiras de resolver isso, mas a que vou sugerir aqui envolve um conceito visto bem no começo do minicurso, portanto servirá como revisão. Estou me referindo à propriedade Enabled do botão "Salvar". Vamos defini-la por padrão como "False".

MaskedTextBox C#

Agora vamos selecionar o MaskedTextBox e, na barra de eventos, localizar a opção KeyDown.

MaskedTextBox C#

Dando dois cliques nela criaremos a função, que deverá ser preenchida com o seguinte código:

MaskedTextBox C#

O método KeyDown é acionado sempre que qualquer tecla do teclado for pressionada. Como o vinculamos ao MaskedTextBox, ela só será acionada quando o usuário inserir qualquer caractere neste campo, habilitando, dessa forma, o botão "Salvar" que fará a validação dos dados. Agora fica impossível tentarmos salvar dados sem antes preenchermos o campo de data de nascimento, pois o botão permanecerá desabilitado, conforme ilustra a imagem abaixo:

MaskedTextBox C#

Com isso encerramos a validação do MaskedTextBox. Na sequência veremos como percorrer todos os TextBoxes de um formulário para validá-los todos ao mesmo tempo.


HARDWARE

Entendendo o seu computador

O que há dentro do meu computador?

Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.


A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.


O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.


A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.


Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.


O título Space Invaders, lançado em 1980, fez tanto sucesso em todo o mundo que as pessoas compravam o console Atari apenas para poderem jogá-lo em casa. Saiba mais sobre este incrível título clicando aqui.


A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.


O ábaco é o dispositivo de cálculo mais antigo construído e conhecido pelo homem. Suas formas mais primitivas datam de 400 a.C. e eles foram encontrados na China e na Babilônia. Para saber mais sobre a história dos computadores, clique aqui.


A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.


As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.


A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.


Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".


O personagem Mario só possui bigode porque quando ele foi criado, em 1981, a resolução de tela dos equipamentos disponíveis não permitia que fosse desenhada uma boca, então os desenvolvedores fizeram o grande bigode para contornar essa limitação tecnológica.


Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!