Olá leitor,
Abaixo está um método simples que serve para zerar todos os textBox de seu formulário de uma única vez. Em casos onde há poucos controles para limpar o conteúdo o bom e velho textBox1.Text = String.Empty ainda pode ser a melhor opção, mas imagine formulários com 20 ou até mais campos. O código ficaria bem feio, não?
Ao invés de limpar um por um, a partir de agora você pode usar este método:
private
void limparTextBoxes(Control.ControlCollection controles)
{
//Faz um laço para todos os controles passados no parâmetro
foreach (Control ctrl in controles)
{
//Se o contorle for um TextBox...
if (ctrl is TextBox)
{
((TextBox)(ctrl)).Text
= String.Empty;
}
}
}
E para chamar o método basta usar o seguinte comando no evento desejado:
limparTextBoxes(this.Controls);
Por hoje é só. Espero que ajude.
[]'s
como fica essa parte se fosse um Picture Box???
ResponderExcluir((TextBox)(ctrl)).Text = String.Empty;
Oi Guilherme, neste caso você também precisará mudar a condição IF. Ficará assim:
Excluirif (ctrl is PictureBox)
{
((PictureBox)(ctrl)).Image = null;
}
Abraço
João Paulo, boa tarde!
ResponderExcluirMuito bom seu código, porém eu criei uma classe copiei e colei seu código, mais o Control.ControlCollection, esta dando erro, preciso usar alguma biblioteca específica?
Oi Flavio, Você precisa da System.Windows.Forms.
ExcluirDa próxima vez que ocorrer erros de bibliotecas faltantes, se estiver no Visual Studio ele mesmo te ajuda. Basta clicar com o botão direito sobre o erro e ir na opção "Resolve". Lá estão as possíveis bibliotecas que contém a classe que está tentando utilizar.
Abraço!
OK, preciso só de mais uma ajuda se possível:
ResponderExcluirCriei uma classe LimpaTextbox, coloquei seu código nela e no formulário chamei assim:
limparTextBoxes(this.Controls);
Esta dando erro tentei colocar :
LimpaTextbox. limparTextBoxes(this.Controls);
Ainda da erro pode me ajudar?
Desde já agradeço
Oi Flavio, deveria funcionar. Você mudou a visibilidade do método de private para public, assim como a própria classe criada?
ExcluirMuito obrigado, consegui, alterei para public conforme informado e fiz o seguinte:
ExcluirLimpaTextbox limpa = new LimpaTextbox();
limpa.limparTextBoxes(this.Controls);
Valeu pela força.
joão paulo ola espero que ainda esteja ativo.. usei seu exemplo dentro de um form ... estou usado mdb como base... notei que se eu fizer um form novo ... ele funciona muito bem... mas nos form que ja questa ancorados a base... nao rola...
ResponderExcluirMUito bom me ajudou muito
ResponderExcluirOla muito bom esse procedimento
ResponderExcluirmais eu tenho uma duvida como podem ver a baixo o procedimento esta em uma classe. chamada: public class ClassProcedimentos como eu chamo esse mesmo procedimento no meu Windows.Forms;
public class ClassProcedimentos
{
private void LimparTextBoxes(Control.ControlCollection controles)
{
//Faz um laço para todos os controles passados no parâmetro
foreach (Control ctrl in controles)
{
//Se o contorle for um TextBox...
if (ctrl is TextBox)
{
((TextBox)(ctrl)).Text = String.Empty;
}
}
}
}
Se quiser usar o método LimparTextBoxes fora da sua classe ClassProcedimentos você tem que trocar o modificador de acesso dele de private para public.
ExcluirDepois é só instanciar sua classe e chamar o método normalmente usando o objeto criado.
Este comentário foi removido pelo autor.
ExcluirOla joão muito obrigado conseguir
Excluirfuncionou
valeu mesmo
Como limpar os campos que estão dentro de um groupbox?
ResponderExcluirBom dia João, tentei utilizar esse seu método, entendi o conceito, porem não to sabendo chamar o método para utilizar em um groupbox especifico.
ResponderExcluirexemplo: tenho 3 formularios e cada formulario esta contido em um groupbox diferente, preciso que quando eu chame o seu metodo sugerido, apague somente o formulario do groupbox pretendido. tem como vc me explicar como faço?
Cara, você não explicou como usá-la de fato, estou perdido! Eu consegui usá-la como uma função dentro de um botão, por exemplo: Criei um botão como o nome limpar dados, e no evento de clique, colei isso:
ResponderExcluirvoid limparTextBoxes(Control.ControlCollection controles)
{
//Faz um laço para todos os controles passados no parâmetro
foreach (Control ctrl in controles)
{
//Se o contorle for um TextBox...
if (ctrl is TextBox)
{
((TextBox)(ctrl)).Text = String.Empty;
}
}
}
limparTextBoxes(this.Controls);
como se fosse uma função. OBS: using System.Windows.Forms; declarada no primeiro formulário em Form1.cs.