none
Classe para Apagar Dados do Form Windows Forms C#

    Question

  • 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

    Thursday, February 09, 2012 6:57 PM

Answers

  • 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 ;)
    • Edited by Renato Coqueiro Friday, February 10, 2012 12:03 PM
    • Proposed as answer by Renato Coqueiro Friday, February 10, 2012 12:03 PM
    • Marked as answer by Leosul Thursday, March 01, 2012 1:53 PM
    Friday, February 10, 2012 12:02 PM
  • 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;

               }

            }


    • Marked as answer by Leosul Thursday, March 01, 2012 1:53 PM
    Thursday, February 09, 2012 7:38 PM

All replies

  • 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;

               }

            }


    • Marked as answer by Leosul Thursday, March 01, 2012 1:53 PM
    Thursday, February 09, 2012 7:38 PM
  • 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 ;)
    • Edited by Renato Coqueiro Friday, February 10, 2012 12:03 PM
    • Proposed as answer by Renato Coqueiro Friday, February 10, 2012 12:03 PM
    • Marked as answer by Leosul Thursday, March 01, 2012 1:53 PM
    Friday, February 10, 2012 12:02 PM
  • Obrigado pessoal ambas as dicas funcionaram.

    Leonardo Jacques da Silva Desenvolvedor .net

    Thursday, March 01, 2012 1:53 PM
  • 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???
    Wednesday, March 13, 2013 12:41 PM
  • 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;
        }}}}}}}}}


    Thursday, February 06, 2014 3:49 PM