none
Classe para Apagar Dados do Form Windows Forms C# RRS feed

  • 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

    quinta-feira, 9 de fevereiro de 2012 18:57

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
    sexta-feira, 10 de fevereiro de 2012 12:02
  • 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
    quinta-feira, 9 de fevereiro de 2012 19:38

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
    quinta-feira, 9 de fevereiro de 2012 19:38
  • 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
    sexta-feira, 10 de fevereiro de 2012 12:02
  • Obrigado pessoal ambas as dicas funcionaram.

    Leonardo Jacques da Silva Desenvolvedor .net

    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???
    quarta-feira, 13 de março de 2013 12:41
  • 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;
        }}}}}}}}}


    quinta-feira, 6 de fevereiro de 2014 15:49
  • Esse codigo eu uso também é melhor
    sábado, 31 de outubro de 2015 14:23