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:

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

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

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:

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

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:

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:

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 é:

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:

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

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:

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

Comentando, teremos:

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

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

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

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

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:

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.
Você Sabia?
PDP-1
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.
ENIAC
O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.
Computadores de 1,5 tonelada
Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Tetris
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.
Ábaco
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.
Mario em Donkey Kong
O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.
Asteroids
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.
Final Fantasy
O famoso título Final Fantasy, da Square Enix, tem este nome exatamente porque se tratava da última esperança da empresa, que estava à beira da falência quando o lançou. Clique aqui e conheça detalhes dessa história.
Playstation
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.
PC com barulho?
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.
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
Mario e seu bigode
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.
Nintendo Wii
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!