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?

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!


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.


Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.


O Playstation só nasceu porque uma parceria entre Sony e Nintendo, para desenvolver uma unidade de CD para o Super Nintendo, fracassou. Clique aqui e saiba mais.


O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.


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.


Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.


Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.


Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.


O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.


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".


Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais 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.


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.