AJUDA COM FUNCAO PARA LIMPAR TODOS CAMPOS

FBGSYSTEMS 06/06/2017 16:10:45
#474345
Bom dia.
Estou criando a seguinte função para limpar todos controles do meu windows form.

Porem parece que quando eu tenho controles dentro de um groupBox ele nao funciona. Como posso fazer isso funcionar? Teria que ter um laço dentro de um groupbox?

            foreach (Control c in this.Controls)
{
if (c.GetType().Name == [Ô]TextBox[Ô])
{
((TextBox)c).Text = [Ô][Ô];
}
else if (c.GetType().Name == [Ô]CheckBox[Ô])
{
((CheckBox)c).Checked = false;
}
else if (c.GetType().Name == [Ô]CheckedListBox[Ô])
{
for (int i = 0; i < ((CheckedListBox)c).Items.Count; i++)
{
((CheckedListBox)c).SetItemChecked(i, false);
}
}
else if (c.GetType().Name == [Ô]MaskedTextBox[Ô])
{
((MaskedTextBox)c).Text = [Ô][Ô];
}
else if (c.GetType().Name == [Ô]ComboBox[Ô])
{
((ComboBox)c).SelectedIndex = -1;
}
else if (c.GetType().Name == [Ô]DateTimePicker[Ô])
{
((DateTimePicker)c).Value = DateTime.Now ;
}

}
DS2T 06/06/2017 16:30:19
#474347
Resposta escolhida
Olá!
Todo controle possui a propriedade Controls.
Basta usar recursividade para verificar o Controls do Controls do pai. Manjou?

Abraços!
FBGSYSTEMS 06/06/2017 17:33:36
#474352
Entendi. Não sabia que todos controles tinham essa propriedade, ai ficou fácil.

Obrigado

         private void f_Limpa(Control  controle)
{
foreach (Control c in controle.Controls)
{
if (c.GetType().Name == [Ô]TextBox[Ô])
{
((TextBox)c).Text = [Ô][Ô];
}
else if (c.GetType().Name == [Ô]CheckBox[Ô])
{
((CheckBox)c).Checked = false;
}
else if (c.GetType().Name == [Ô]CheckedListBox[Ô])
{
for (int i = 0; i < ((CheckedListBox)c).Items.Count; i++)
{
((CheckedListBox)c).SetItemChecked(i, false);
}
}
else if (c.GetType().Name == [Ô]MaskedTextBox[Ô])
{
((MaskedTextBox)c).Text = [Ô][Ô];
}
else if (c.GetType().Name == [Ô]ComboBox[Ô])
{
((ComboBox)c).SelectedIndex = -1;
}
else if (c.GetType().Name == [Ô]DateTimePicker[Ô])
{
((DateTimePicker)c).Value = DateTime.Now;
}
this.f_Limpa(c); // aqui chamo a mesma funçao pra limpar os filhos

}

}
Tópico encerrado , respostas não são mais permitidas