You are here

[C#] Limpando todos os TextBox do formulario em um só clique

Tweet me!

Geralmente quando queremos limpar os campos de um formulario, acessamos controle por controle e setamos sua propriedade Text para uma string vazia ou usamos o metodo Clear.

Há uma outra maneira simples de se fazer isso, basta usarmos Recursividade, de acordo com a Wikipedia (http://pt.wikipedia.org/wiki/Recursividade) Recursividade é um método de programação no qual uma função pode chamar a si mesma.

Imagine agora um formulário de cadastro de clientes por exemplo, com mais de 20 textbox para ler limpadas após terminar o cadastro, do modo antigo teriamos de acessar uma por uma e mudar suas propriedades, seria mais ou menos assim :

txtNome.Text = String.Empty;

txtIdade.Clear();

txtEndereco.Clear();

txtBairro.Text = "";

 

Há varias maneiras de se limpar um campo.

Agora para limpar esse formulario podemos usar a função abaixo:

 

         private void LimpaCamposFormulario(Control.ControlCollection controles)
        {
            foreach ( Control ctrl in controles )
            {
                if ( ctrl is TextBox )
                {
                    ((TextBox)(ctrl)).Clear( );
                }
                LimpaCamposFormulario( ctrl.Controls );
            }
        }

 

Explicação:

 Ele executa um ForEach percorrendo cada controle do objeto, se o controle for do tipo TextBox, ele executa o metodo Clear para limpar ele,e após isso, ele chama novamente a mesma função, passando como objeto o controle que ele esta verificando agora.

 

De onde executar esse método ?

Podemos colocar ele apos o evento salvar de nosso formulario ou de uma maneira simples, usando um botão "Limpar" e executar essa função.

LimpaCamposFormulario(this.Controls);

 

Até a Próxima

Thiago Silva Santos
C# Developer
Microsoft Student Partner (MSP)
Microsoft Certified Professional (MCP) | SQL SERVER 2005
Microsoft Certified Technology Specialist (MCTS) | SQL SERVER 2005

 

 

 

Comentários
Adicionar novo Busca RSS
Renan Guedes  - Obrigado   |187.35.177.xxx |2009-08-07 20:34:41
Olá, muito obrigado pelo código, me ajudou muito!!
Raphael   |189.69.110.xxx |2010-01-05 17:08:44
excelente post!
ótima explicação tbm!!
Matheus   |189.15.198.xxx |2010-02-14 01:26:08
muito bom
Escrever um comentário
Nome:
E-mail:
 
Website:
Título:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0
:confused::cheer:
B):evil:
:silly::dry:
:lol::kiss:
:D:pinch:
:(:shock:
:X:side:
:):P
:unsure::woohoo:
:huh::whistle:
;):s
:!::?:
:idea::arrow:
 
Por favor coloque o código anti-spam que você lê na imagem.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."