Usuário com melhor resposta
VERIFICAR MASKED TEXTBOX INCOMPLETO

Pergunta
-
BOA TARDE!
A MINHA DÚVIDA É RELATIVAMENTE FÁCIL MAS EU NÃO ESTOU CONSEGUINDO FAZER...
EU TENHO UM MASKEDBOX DE DATA __/__/____ EU INSIRO A DATA E SE ESTIVER CORRETA ELE DEIXA PASSAR PARA A PROXIMA DATA CASO CONTRÁRIO ELE ME RETORNA DATA INVÁLIDA.
ATÉ AI TUDO BEM, EU QUERO QUE: QUANDO EU SAIA DO MASKEDBOX SE A DATA NÃO ESTIVER COMPLETA ELE APAGUE.
EX: 12/05/199_ QUANDO EU SAIR DO MASKED ELE APAGUE AUTOMATICAMENTE
EU FIZ ASSIM NO EVENTO LEAVE:
if(mskBCG1.textlenght < 9) { MessageBox.Show("Data inválida!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); mskBCG1.Focus(); mskBCG1.Clear(); }
acho que o problema tá no parâmetro textlenght. Tentei no evento maskchanged também e não deu certo...
Alguém ajuda?
Respostas
-
Oi felipe, disse que se vc utilizasse o datatimerpicker não teria que se preocupar se foi preenchido ou não, pois ele sempre vai carregar a data atual da maquina, dai é só fazer uma comparação se a data é igual atual( caso a data que vc precise seja a do dia ou menor ou maior ) não sei como vc precisa. Dessa forma vc não precisa validar a data.
- Editado Marcos SJ quarta-feira, 13 de janeiro de 2016 17:02 Edição
- Marcado como Resposta Felipe STW quinta-feira, 14 de janeiro de 2016 19:02
Todas as Respostas
-
Felipe esse seu tratamento do incompleto deve ir alem pois o usuario pode digitar uma data invalida. não seria menos trabalhoso inserir um datatimerpicker ? assim vc teria certeza que a data seria inserida certa.
em todo caso para a solução do seu problema eu faria o seguinte
excluiria a formatação do mask assim :
Maskbox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
assim vc vai comparar somente o texto.
Att, wsti.
-
Olá Felipe, para executar o comando assim que peder o focus do textbox uso o seguinte mentodo:
private void textBox1_LostFocus(object sender, EventArgs e) { // do your stuff }
If the answer was helpful vote
- Sugerido como Resposta Jean LLopes quarta-feira, 13 de janeiro de 2016 02:08
-
Oi, wsti.
Não entendi bem o que você falou. Segue meu código completo do maskbox:
private void mskRota2_Leave(object sender, EventArgs e) { mskRota2.BackColor = Color.White; if (mskRota2.MaskCompleted) { DateTime ValidarData; if (DateTime.TryParse(mskRota2.Text, out ValidarData)) { pic023.Visible = true; ok023.Visible = true; } else { MessageBox.Show("Data inválida!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information); pic023.Visible = false; ok023.Visible = false; mskRota2.Clear(); mskRota2.Focus(); mskRota2.BackColor = Color.White; } }
-
Oi felipe, disse que se vc utilizasse o datatimerpicker não teria que se preocupar se foi preenchido ou não, pois ele sempre vai carregar a data atual da maquina, dai é só fazer uma comparação se a data é igual atual( caso a data que vc precise seja a do dia ou menor ou maior ) não sei como vc precisa. Dessa forma vc não precisa validar a data.
- Editado Marcos SJ quarta-feira, 13 de janeiro de 2016 17:02 Edição
- Marcado como Resposta Felipe STW quinta-feira, 14 de janeiro de 2016 19:02
-
Olá Felipe Távora,
Tudo bem?
Você considerou a resposta do Jean LLopes ?
Marcos Roberto de Souza Junior
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.