none
Validação de campos com Controls RRS feed

  • Pergunta

  • Tenho um formulario com 3 textbox onde estou fazendo os testes antes de passar pro meu projeto. Quando eu deixo todos os textbox vazios, ao invez de me retornar apenas uma mensagem, ele me retorna 3 mensagens, cada uma referente a um textbox, se eu deixar 2 textbox vazios ele me retorna duas mensagens e assim por diante. Como poderia fazer para mesmo se deixar todos os campos vazios, que apareça apenas uma mensagem?. Obrigado...

    Abaixo vai o codigo que eu utilizo:

              foreach (Control controle in this.Controls)
                {
                    if(controle.GetType() == typeof(TextBox))
                    {
                        if (((TextBox)(controle)).Text.Equals(string.Empty))
                        {
                            MessageBox.Show("Favor preencher os campos vazios!");
                        }
                    }
                }

    quinta-feira, 11 de julho de 2013 00:19

Todas as Respostas

  • Olá,

    para que apareça apenas uma vez a mensagem, basta fazer a modificação abaixo, colocando um "break" caso seja encontrado um TextBox vazio, sendo que abaixo está sendo reproduzido apenas o código do "if" modificado:

    if (((TextBox)(controle)).Text.Equals(string.Empty))
     {
      MessageBox.Show("Favor preencher os campos vazios!");
       break;
      return;
    }

    O "break" faz com que se iinterrompa a sequência no laço do "foreach" (pois não há mais necessidade prosseguir com a validação caso encontre um TextBox vazio) e o "return" encerrará a execução da rotina.

    PS: todo o restante do seu código continua igual.

    Abs

    quinta-feira, 11 de julho de 2013 00:28
  • Fala Alexandre, funcionou certinho o que tu me explicou, muito obrigado brother. Forte abraço.
    quinta-feira, 11 de julho de 2013 00:44
  • Fico feliz em ter ajudado. Por gentileza, marcar como "Respondido" o post. Obrigado. Até mais.
    quinta-feira, 11 de julho de 2013 00:55