Loop para validação de controles Texbox em C sharp wpf
Boa Noite!
Pessoal estou com um problema, tenho um Formulário WPF em C# que possui varias Texbox's, preciso criar um Loop para verificar se todos os elementos textbox estão preenchidos e se não mostrar uma mensagem para o usuário informando a textbox vazia, vi vários exemplos na internet mas na minha aplicação não funcionou, sei que isso pode ser ser feito por meio de uma coição "if" encadeada, mas queria fazer por meio de loop pois ficaria mais organizado e com um código mais, alguém sabe como posso fazer isso?
Esse foi um dos melhores exemplo que consegui não funcionou:
Conto com ajuda de vcs, e desde já meu muito obrigado!
Pessoal estou com um problema, tenho um Formulário WPF em C# que possui varias Texbox's, preciso criar um Loop para verificar se todos os elementos textbox estão preenchidos e se não mostrar uma mensagem para o usuário informando a textbox vazia, vi vários exemplos na internet mas na minha aplicação não funcionou, sei que isso pode ser ser feito por meio de uma coição "if" encadeada, mas queria fazer por meio de loop pois ficaria mais organizado e com um código mais, alguém sabe como posso fazer isso?
Esse foi um dos melhores exemplo que consegui não funcionou:
private void prcVerificarCampos() { foreach (Control c in this.Controls) { if (c is TextBox & string.IsNullOrEmpty(c.Text)) { MessageBox.Show("Favor Preencha o Campo " + c.Name); c.Select(); return; } } }
Conto com ajuda de vcs, e desde já meu muito obrigado!
Moisés
Curtidas 0
Melhor post
Jaedson Serafim
04/07/2015
Analisei novamente sua pergunta e reparei que a resposta que lhe dei é muito deselegante, então concertei esse código que mostrastes.
E só, espero ter ajudado.
// O método não retorna nenhum valor, pois só queremos exibir uma MessageBox com os dados não preenchidos. private void pcrVerificarCampos () { // String que representará todos os campos em branco. string campos = ""; foreach (Control controle in this.Controls) { // Coloquei para também aceitar RichTextBox, por isso se lembre dos parênteses, sem eles só será analisado os RichTextBox. if ((controle is TextBox || controle is RichTextBox) && string.IsNullOrEmpty(controle.Text)) { // Aqui será adicionado o nome da entrada em branco e a vírgula. campos += controle.Name + ", "; } } // Modificadores da mensagem que será mostrada para o usuário. campos = campos.Substring(0, campos.Length - 2); int x = campos.LastIndexOf(','); campos = campos.Remove(x, 1); campos = campos.Insert(x, " e"); // E finalmente a MessageBox é exibida para o usuário. MessageBox.Show(string.Format("Por favor preencha o(s) campo(s) .", campos)); // Recomendo que use string.Format ao invés de usar +, pois assim seu programa rodará mais fluidamente. }
E só, espero ter ajudado.
GOSTEI 1
Mais Respostas
Moisés
16/05/2015
Pessoal por favor me ajudem ainda não consegui solucionar este caso, conto com a ajuda de vcs!
GOSTEI 0
Jaedson Serafim
16/05/2015
Já pensasse em fazer um arrey de textBox que pode ser percorrido por um foreach, verificando o texto de cada um no loop.
GOSTEI 0
Moisés
16/05/2015
Já pensasse em fazer um arrey de textBox que pode ser percorrido por um foreach, verificando o texto de cada um no loop.
Jaedson Barbosa Serafim, não tinha pensado nisso até pq não sei fazer isso, vc poderia me mostrar um EX?
GOSTEI 0
Moisés
16/05/2015
Valeu Cara, muito obrigado.
GOSTEI 0
Márcio Silva
16/05/2015
Analisei novamente sua pergunta e reparei que a resposta que lhe dei é muito deselegante, então concertei esse código que mostrastes.
E só, espero ter ajudado.
// O método não retorna nenhum valor, pois só queremos exibir uma MessageBox com os dados não preenchidos. private void pcrVerificarCampos () { // String que representará todos os campos em branco. string campos = ""; foreach (Control controle in this.Controls) { // Coloquei para também aceitar RichTextBox, por isso se lembre dos parênteses, sem eles só será analisado os RichTextBox. if ((controle is TextBox || controle is RichTextBox) && string.IsNullOrEmpty(controle.Text)) { // Aqui será adicionado o nome da entrada em branco e a vírgula. campos += controle.Name + ", "; } } // Modificadores da mensagem que será mostrada para o usuário. campos = campos.Substring(0, campos.Length - 2); int x = campos.LastIndexOf(','); campos = campos.Remove(x, 1); campos = campos.Insert(x, " e"); // E finalmente a MessageBox é exibida para o usuário. MessageBox.Show(string.Format("Por favor preencha o(s) campo(s) .", campos)); // Recomendo que use string.Format ao invés de usar +, pois assim seu programa rodará mais fluidamente. }
E só, espero ter ajudado.
Jaedson Serafim,
Eu tentei implementar esse método, porém ocorre o erro quando cai em:
campos = campos.Substring(0, campos.Length - 2);
A mensagem diz que o valor não pode ser menor que 0
GOSTEI 0