Inquiridor
Problema ao usar comando para apagar campos

Pergunta
-
Olá amigos,
Aprendi a fazer um código para apagar campos em um Form:
private void ApCampos()
{
foreach (Control ApG in this.Controls)
{
if (ApG is TextBox)
{
ApG.Text = string.Empty;
}
else if (ApG is MaskedTextBox)
{
ApG.Text = string.Empty;
}
else if (ApG is ComboBox)
{
ApG.Text = string.Empty;
}
}
}Porém, ele não apaga os campos que estão dentro de um GroupBox. Como posso implementar isso no código?
- Editado nelsonmgj domingo, 3 de janeiro de 2021 20:44
Todas as Respostas
-
Não seria ?
private void ApCampos()
{
foreach (Control ApG in this.Controls)
{
if (ApG is TextBox)
{
ApG.Text = string.Empty;
}
else if (ApG is MaskedTextBox)
{
ApG.Text = string.Empty;
}
else if (ApG is ComboBox)
{
ApG.Text = string.Empty;
}else if (ApG is GroupBox)
{
ApG.Text = string.Empty;
}
}
} -
NelsonMGJ,
Respondendo rapidamente... Acho que é só colocar mais um "IF"... talvez você possa usar RECURSIVIDADE para ficar melhor...
if(gb is GroupBox) { foreach(Control tb in this.Controls) { if(tb is TextBox) { tb.Text = string.Empty; } } }
Veja também:
Go through all textboxes, comboboxes,... and clear their content
================================================
Using a foreach loop to retrieve TextBox's within a GroupBox
https://stackoverflow.com/questions/8224261/using-a-foreach-loop-to-retrieve-textboxs-within-a-groupbox
================================================
Looping through form controls belonging to groupboxes RRS feed
https://social.msdn.microsoft.com/Forums/vstudio/en-US/f5e1fd16-7fbf-47a8-a86e-264f72517f05/looping-through-form-controls-belonging-to-groupboxes?forum=csharpgeneral
================================================
Reset All Controls in GroupBox
https://www.c-sharpcorner.com/blogs/reset-all-controls-in-groupbox1
================================================
https://www.codeproject.com/Questions/737339/Go-through-all-textboxes-comboboxes-and-clear-thei
================================================
[]'s,
Fabio I.P.S.: Por favor, se te ajudei, não esqueça de me pontuar... este é meu "salário".
- Editado Fabio I segunda-feira, 4 de janeiro de 2021 00:40
-
-
Olá Fabio, boa noite!
Seu exemplo eu tentei implementar, mas não houve sucesso, porém separei um foreach como no primeiro "veja também" que você passou e funcionou.
Obrigado!
Ficou dessa forma:
private void ApCampos()
{
foreach (Control ApG in this.Controls)
{
if (ApG is TextBox)
{
ApG.Text = string.Empty;
}
else if (ApG is MaskedTextBox)
{
ApG.Text = string.Empty;
}
else if (ApG is ComboBox)
{
ApG.Text = string.Empty;
}
}
foreach (Control ApB in this.Controls)
if (ApB is GroupBox)
{
foreach(Control ApC in ApB.Controls)
{
if (ApC is ComboBox)
{
ApC.Text = string.Empty;
}
}
}
}- Editado nelsonmgj segunda-feira, 4 de janeiro de 2021 02:10
-
Nelson,
Legal que você resolveu.
Então... esse segundo "For Each" (foreach(Control ApC in ApB.Controls)) talvez possa ser colocado em uma rotina de recursividade.
Copie esse código que está funcionando em algum lugar e tente modificá-lo para implementer recursividade.
Exemplos:
===================================
EXEMPLO SOBRE RECURSIVIDADE
Um pequeno exemplo sobre recursividade. A small example about recursion.
'Antes de entender sobre recursividade, você precisa entender sobre recursividade'
https://www.vbmania.com.br/index.php?modulo=detalhe&id=9517
===================================
TRABALHANDO TREEVIEW COM RECURSIVIDADE
https://www.vbmania.com.br/index.php?modulo=detalhe&id=7913
===================================
Recursive methods using C#
https://www.codeproject.com/Articles/142292/Recursive-methods-in-Csharp
===================================
Recursion made simple
The principle of practicality
https://www.codeproject.com/Articles/32873/Recursion-made-simple
===================================
How to recursively list all the files in a directory in C#?
static void DirSearch(string sDir) { try { foreach (string d in Directory.GetDirectories(sDir)) { foreach (string f in Directory.GetFiles(d)) { Console.WriteLine(f); } DirSearch(d); } } catch (System.Exception excpt) { Console.WriteLine(excpt.Message); } }
https://stackoverflow.com/questions/929276/how-to-recursively-list-all-the-files-in-a-directory-in-c
===================================
[]'s,
Fabio I. -
-