none
Condições para maskedbox RRS feed

  • Pergunta

  • Bom dia Pessoal!

    Estou precisando de uma ajuda, tenho uma condição onde ( se o maskedbox  estiver vazio e o radiobutton estiver desmarcado, mande uma mensagem para preencher o maskedbox  ou selecionar o radiobutton, mas quando eu pesso para inserir a condição (if) so fuciona para o radiobutton. Não exigindo o preenchimento do maskedbox. a condição é a seguinte.

     if ((mskIncricao_Estadual.TextLength.Equals(0)) || (rdbIsencao_InsEstadual.Checked.Equals(false)))
                {
                    MessageBox.Show(" Favor Inserir a Inscrição Estadual  ou selecionar Isenção ", " Mensagem!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

    parece que a condição esta reconhecendo so o radiobutton.

    dentro do Equals ja tentei false, 0, -0 e ate agora nada.

    ja usei || e tambem && na condição e ate agora tambem nada.

    Alguem pode me ajudar ? Obrigado a todos.

    quinta-feira, 29 de agosto de 2013 11:17

Respostas

  • Carlos Macedo, 

    Você deve usar a seguinte formatação para o maskTextBox: 

              maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

    Esta propriedade define ou configura se os caracteres ou literais no controle serão incluido na formatação da string. 

    E abaixo o codigo completo e funcional para seu problema. Por favor não esqueça de marcar a resposta.

            private void btnValidar_Click(object sender, EventArgs e)
            { 
                maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

                if (maskedTextBox1.Text == string.Empty && radioButton1.Checked == false)
                {
                    MessageBox.Show(" Favor Inserir a Inscrição Estadual  ou selecionar Isenção ", " Mensagem!",                                                                                            MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;

                }

            }

                 

    Marcio Rodrigues


    sexta-feira, 30 de agosto de 2013 02:23
  •  //Aqui você exclui barras e configurações só pega o texto
    maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
    string t = maskedTextBox1.Text;
    //Aqui se volta ao estado normal com as barras no caso de data
    maskedTextBox1.TextMaskFormat = MaskFormat.IncludePromptAndLiterals;
    //Aqui se confere se foi digitado algo
    if (!string.IsNullOrEmpty(t))
    {
    	MessageBox.Show("Foi digigado");
    }
    else
    {
    	MessageBox.Show("Não Foi digigado");
    }
    Assim acredito ser mais prático fazer!

    Fúlvio Cezar Canducci Dias
    sexta-feira, 30 de agosto de 2013 02:35

Todas as Respostas

  • Carlos, o problema é que quando você usa um maskedTextBox com separadores, ele nunca fica vazio. 

    Por exemplo:

    Uma maskedTextBox com o formato de data "  /  /     ", mesmo que você não preencha nada, ela não está vazia, pois as barras estão lá. Entendeu?

    Nesse caso de data, a condição poderia ser:

    if (masked.Text != "  /  /")

    Faça o seguinte, depure o código. Quando passar pela condição, verifique a propriedade .Text de sua masked e veja qual o texto padrão para quando estiver vazio. 


    Leonardo D'Amato

    quinta-feira, 29 de agosto de 2013 11:22
  • Carlos Macedo, 

    Você deve usar a seguinte formatação para o maskTextBox: 

              maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

    Esta propriedade define ou configura se os caracteres ou literais no controle serão incluido na formatação da string. 

    E abaixo o codigo completo e funcional para seu problema. Por favor não esqueça de marcar a resposta.

            private void btnValidar_Click(object sender, EventArgs e)
            { 
                maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

                if (maskedTextBox1.Text == string.Empty && radioButton1.Checked == false)
                {
                    MessageBox.Show(" Favor Inserir a Inscrição Estadual  ou selecionar Isenção ", " Mensagem!",                                                                                            MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;

                }

            }

                 

    Marcio Rodrigues


    sexta-feira, 30 de agosto de 2013 02:23
  •  //Aqui você exclui barras e configurações só pega o texto
    maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
    string t = maskedTextBox1.Text;
    //Aqui se volta ao estado normal com as barras no caso de data
    maskedTextBox1.TextMaskFormat = MaskFormat.IncludePromptAndLiterals;
    //Aqui se confere se foi digitado algo
    if (!string.IsNullOrEmpty(t))
    {
    	MessageBox.Show("Foi digigado");
    }
    else
    {
    	MessageBox.Show("Não Foi digigado");
    }
    Assim acredito ser mais prático fazer!

    Fúlvio Cezar Canducci Dias
    sexta-feira, 30 de agosto de 2013 02:35
  • Obrigado!

    Deu certo sim! Valel.

    sexta-feira, 30 de agosto de 2013 09:35
  • Valel Fulvio foi muito util.

    Obrigado.

    sexta-feira, 30 de agosto de 2013 09:36
  • Bom dia Marcio, como em um mask é necessario que a informação seja preenchida por inteiro acredito que você poderia fazer dessa forma isso iria, permitir que fosse validado somente se ele estivesse deixado completo o mais

     if (radioButton1.Checked == false && !maskedTextBox1.MaskFull)
                {
                    MessageBox.Show("foi");
                }

    Se a Resposta foi útil, por favor marque como válida assim esta contribuindo para gratificar todo o esforço de nossos colegas, Abraço.


    Paulo Caleffi

    sexta-feira, 30 de agosto de 2013 11:52