none
VERIFICAR MASKED TEXTBOX INCOMPLETO RRS feed

  • 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?

    terça-feira, 12 de janeiro de 2016 19:00

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
    quarta-feira, 13 de janeiro de 2016 16:48

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.

    terça-feira, 12 de janeiro de 2016 19:25
  • 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
    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;
                    }
                }

    quarta-feira, 13 de janeiro de 2016 12:26
  • 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
    quarta-feira, 13 de janeiro de 2016 16:48
  • 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.

    quinta-feira, 14 de janeiro de 2016 13:14