Loop para validação de controles Texbox em C sharp wpf
16/05/2015
0
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
Post mais votado
04/07/2015
// 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
Mais Posts
27/05/2015
Moisés
25/06/2015
Jaedson Serafim
01/07/2015
Moisés
Jaedson Barbosa Serafim, não tinha pensado nisso até pq não sei fazer isso, vc poderia me mostrar um EX?
09/11/2017
Márcio Silva
// 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
Clique aqui para fazer login e interagir na Comunidade :)