Array
(
)

foreach para limpar todos textBox

Buenolex
|
MVP
    21 jul 2008

Olá amigos, as vezes perdemos um tempão limpando os campos do formulário... Fiz um teste com o foreach abaixo mas ele não funcionou

foreach (Control c in this.Controls)
{
if (c is TextBox)
(c as TextBox).Text = ´´;
}

Alguém sabe como fazer um foreach de forma a limpar todos os campos do formulário?

Grato,
Lex.

Gilberto_lg
   - 21 jul 2008

Estranho...mas tenta com o for normal...

Tenta criar um group box e coloca os campos nele, acho q fica melhor...

ou então tenta com o for normal...ve se dá certo esse codigo:

for (int i=0; i <= this.Controls.Count -1; i++)
{
if (this.Controls[i] is TextBox)
(this.Controls[i] as TextBox).Text = ´´;
if (this.Controls[i] is ComboBox)
(this.Controls[i] as ComboBox).SelectedIndex = -1;
//....etc
}

abrçs

Ricardo Silva
   - 21 jul 2008

nesse codigo vc esta fazendo em apenas um controle...

ou seja se vc tem dois panel e os TextBox esta no segundo Panel... esse foreach não atinge o segundo Panel...

portanto vc tera que colocar esse codigo dentro de um outro Loop para percorrer totos os controles...
não sei se vc entendeu..

mas na duvida soh posta

Fabio Macieira
   - 16 fev 2016

Boa noite a todos

Meu amigo Buenolex,
preencha seu código assim.

#Código

 /* onde controle é o sua variável  c */
foreach (var controle in this.Controls)
            {
                if (controle is TextBox)
                {
                    ((TextBox)controle).Clear();
                }
            }

espero ter ajudado.