Usuário com melhor resposta
Classe para Apagar Dados do Form Windows Forms C#

Pergunta
-
Boa Tarde!
Estou criando um formulário que será o template dos demais no sistema, logo estou criando os botões padrões de crud, suas propriedades e configurações. Uma funcionalidade que eu gostaria de criar é uma classe onde fosse possível inicializar todos os campos que eu tiver neste formulário por exemplo, combo, textbox etc... Gostaria de criar uma classe para não precisar criar em todos os fomulários o mesmo código para apagar os dados, isto seria usado por exemplo com o botão de cancelar, novo e após o gravar.
Aceito sugestões... abraço!
Leonardo Jacques da Silva Desenvolvedor .net
Respostas
-
segue uma prontinha, é só copiar e usar!
public static void LimparCampos(Form frm)
{
foreach (Control item in frm.Controls)
{
if (item is TextBox)
((TextBox)item).Text = "";
else if (item is ComboBox)
((ComboBox)item).SelectedIndex = -1;
else if (item is DateTimePicker)
item.Text = "";
else if (item is GroupBox)
{
for (int i = 0; i < item.Controls.Count; i++)
{
if (item.Controls[i] is TextBox)
{
(item.Controls[i] as TextBox).Text = "";
}
if (item.Controls[i] is ComboBox)
{
(item.Controls[i] as ComboBox).SelectedIndex = -1;
}
if (item.Controls[i] is ComboBox)
{
(item.Controls[i] as ComboBox).SelectedValue = -1;
}
if (item.Controls[i] is DateTimePicker)
{
(item.Controls[i] as DateTimePicker).Text = "";
}
}
}
}
} Se a resposta foi util marque como resposta ;)- Editado Renato Coqueiro sexta-feira, 10 de fevereiro de 2012 12:03
- Sugerido como Resposta Renato Coqueiro sexta-feira, 10 de fevereiro de 2012 12:03
- Marcado como Resposta Leosul quinta-feira, 1 de março de 2012 13:53
-
Boa Tarde,
Você pode criar um método no seu form template que limpa o conteúdo das caixas e chamar nos eventos do botão esse Método Limpar
//Método Limpar
public void Limpar()
{
foreach (Control c in this.Controls)
{if (c is TextBox)
((TextBox)c).Text = string.Empty;
else if (c is CheckBox)((CheckBoc)c).Checked = false;
}
}
- Marcado como Resposta Leosul quinta-feira, 1 de março de 2012 13:53
Todas as Respostas
-
Boa Tarde,
Você pode criar um método no seu form template que limpa o conteúdo das caixas e chamar nos eventos do botão esse Método Limpar
//Método Limpar
public void Limpar()
{
foreach (Control c in this.Controls)
{if (c is TextBox)
((TextBox)c).Text = string.Empty;
else if (c is CheckBox)((CheckBoc)c).Checked = false;
}
}
- Marcado como Resposta Leosul quinta-feira, 1 de março de 2012 13:53
-
segue uma prontinha, é só copiar e usar!
public static void LimparCampos(Form frm)
{
foreach (Control item in frm.Controls)
{
if (item is TextBox)
((TextBox)item).Text = "";
else if (item is ComboBox)
((ComboBox)item).SelectedIndex = -1;
else if (item is DateTimePicker)
item.Text = "";
else if (item is GroupBox)
{
for (int i = 0; i < item.Controls.Count; i++)
{
if (item.Controls[i] is TextBox)
{
(item.Controls[i] as TextBox).Text = "";
}
if (item.Controls[i] is ComboBox)
{
(item.Controls[i] as ComboBox).SelectedIndex = -1;
}
if (item.Controls[i] is ComboBox)
{
(item.Controls[i] as ComboBox).SelectedValue = -1;
}
if (item.Controls[i] is DateTimePicker)
{
(item.Controls[i] as DateTimePicker).Text = "";
}
}
}
}
} Se a resposta foi util marque como resposta ;)- Editado Renato Coqueiro sexta-feira, 10 de fevereiro de 2012 12:03
- Sugerido como Resposta Renato Coqueiro sexta-feira, 10 de fevereiro de 2012 12:03
- Marcado como Resposta Leosul quinta-feira, 1 de março de 2012 13:53
-
-
Ola a todos, estou com a ideia de utilizar um dos métodos acima para limpar os meus textbox. estou trabalhando em visual studio C# onde criei um webform. a minha dúvida é a seguinte: tenho criado uma classe chamada LimparLimparTEXTBOX onde declarei um dos métodos acima. mas quero invocar este método em vários forms do meu projecto. ao invocar estou fazendo, no evento de um botao cancelar: LimparTEXTBOX clear = new LimparTEXTBOX(); clear.LimparCampos(this.Controls); mas não sei se estou invocando correctamente este método pelo que nao funciona.. algum ajuda???
-
segue uma prontinha, é só copiar e usar!
public static void LimparCampos(Form frm)
{
foreach (Control item in frm.Controls)
{
if (item is TextBox)
((TextBox)item).Text = "";
else if (item is ComboBox)
((ComboBox)item).SelectedIndex = -1;
else if (item is DateTimePicker)
item.Text = "";
else if (item is GroupBox)
{
for (int i = 0; i < item.Controls.Count; i++)
{
if (item.Controls[i] is TextBox)
{
(item.Controls[i] as TextBox).Text = "";
}
if (item.Controls[i] is ComboBox)
{
(item.Controls[i] as ComboBox).SelectedIndex = -1;
}
if (item.Controls[i] is ComboBox)
{
(item.Controls[i] as ComboBox).SelectedValue = -1;
}
if (item.Controls[i] is DateTimePicker)
{
(item.Controls[i] as DateTimePicker).Text = "";
}
}
}
}
} Se a resposta foi util marque como resposta ;)Cara e se tiver um Grupbox dentro de outro Grupbox?
Como ficaria estou tentando aki e não vai, uma das maneiras q fiz foi assim: ;-/
public static class meLimpaCampos { public static void varLimpaCampos(Form varForm) { foreach (Control varControles in varForm.Controls) { if (varControles is TextBox) { ((TextBox)varControles).Text = string.Empty; } else if (varControles is ComboBox) { ((ComboBox)varControles).SelectedIndex = -1; } else if(varControles is GroupBox) { for(int i = 0; i < varControles.Controls.Count; i++) { if(varControles.Controls[i] is TextBox) { (varControles.Controls[i] as TextBox).Text = string.Empty; } if (varControles.Controls[i] is ComboBox) { (varControles.Controls[i] as ComboBox).Text = string.Empty; } if (varControles is GroupBox) { for (int a = 0; a < varControles.Controls.Count; a++) //AKI FIZ O ACRESCEMO { if (varControles.Controls[a] is TextBox) { (varControles.Controls[a] as TextBox).Text = string.Empty; } if (varControles.Controls[a] is ComboBox) { (varControles.Controls[a] as ComboBox).Text = string.Empty; }}}}}}}}}
- Editado A extinção está na falta de compartilhar o saber quinta-feira, 6 de fevereiro de 2014 15:56 +SCRIPT
-