none
Limpar ComboBoxs dentro de um TabControl, ambos em guias diferentes! RRS feed

  • Pergunta

  • Olá Pessoal!

    Estou tentando limpar os ComboBoxs dentro de um TabControl. Em ambas as guias tabPage1 e tabPage2, utilizando o evento Load do form, porém, só consigo limpar os ComboBoxs da guia tabPage1.

     

            private void Form9_Load(object sender, EventArgs e)

            {

                   cmbSelectEmpresa.Text = "";           // tabPage1

                   cmbMeioArquivamentoLote.Text = "";    // tabPage1

                   cmbSelectOrgaoEmissor.Text = "";      // tabPage2

                   cmbSelectOrgaoFiscalizador.Text = ""; // tabPage2

                   cmbSelectSerieDocumental.Text = "";   // tabPage2

                   cmbSelectNomeRespDpto.Text = "";      // tabPage2

            }

     

    Criei um botão "Limpar" com todos os ComboBoxs e ele consegue limpar todos os combos das guias, porém, o evento Load do Form não consegue limpar os da tabPage2.

     

            private void btnLimpar_Click(object sender, EventArgs e)

            {

                   cmbSelectEmpresa.Text = "";           // tabPage1

                   cmbMeioArquivamentoLote.Text = "";    // tabPage1

                   cmbSelectOrgaoEmissor.Text = "";      // tabPage2

                   cmbSelectOrgaoFiscalizador.Text = ""; // tabPage2

                   cmbSelectSerieDocumental.Text = "";   // tabPage2

                   cmbSelectNomeRespDpto.Text = "";      // tabPage2

            }

     

    Fiz uma aplicação de testes e consegui limpar todos os TextBoxs de ambas as tabPages, só não consigo na minha aplicação real!.

     

    Obs.: Estou usando DataSource nos ComboBoxs utilizando métodos.

     

    Alguém poderia me ajudar com esta dificuldade?

     

    Obrigado!

     

    []’s

     

    Sérgio Pitta
    segunda-feira, 25 de outubro de 2010 17:42

Respostas

  • Fiz um exemplo recursivo para limpar os combobox, se quiser que limpe texbox também é só colocar o elseif com o tipo e limpar.

        private void button2_Click(object sender, EventArgs e)
        {
          LimpaControle(tabControl1);
        }


        private void LimpaControle(Control ctrl)
        {
          foreach (Control item in ctrl.Controls)
          {
            if (item.HasChildren)
            {
              LimpaControle(item);
            }
            if (item.GetType() == typeof(ComboBox))
            {
              ComboBox cbo;
              cbo = (ComboBox)item;
              cbo.SelectedIndex = -1;
            }
          }
        }


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    • Marcado como Resposta Sérgio Pitta segunda-feira, 25 de outubro de 2010 21:58
    segunda-feira, 25 de outubro de 2010 20:26
  • Olá Bruno!

    Funcionou corretamente!

    Vlw, obrigado!

    Abs,

    Sérgio Pitta

    • Marcado como Resposta Sérgio Pitta terça-feira, 26 de outubro de 2010 11:03
    segunda-feira, 25 de outubro de 2010 21:58

Todas as Respostas

  • Fiz um exemplo recursivo para limpar os combobox, se quiser que limpe texbox também é só colocar o elseif com o tipo e limpar.

        private void button2_Click(object sender, EventArgs e)
        {
          LimpaControle(tabControl1);
        }


        private void LimpaControle(Control ctrl)
        {
          foreach (Control item in ctrl.Controls)
          {
            if (item.HasChildren)
            {
              LimpaControle(item);
            }
            if (item.GetType() == typeof(ComboBox))
            {
              ComboBox cbo;
              cbo = (ComboBox)item;
              cbo.SelectedIndex = -1;
            }
          }
        }


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    • Marcado como Resposta Sérgio Pitta segunda-feira, 25 de outubro de 2010 21:58
    segunda-feira, 25 de outubro de 2010 20:26
  • Olá Bruno!

    Funcionou corretamente!

    Vlw, obrigado!

    Abs,

    Sérgio Pitta

    • Marcado como Resposta Sérgio Pitta terça-feira, 26 de outubro de 2010 11:03
    segunda-feira, 25 de outubro de 2010 21:58
  • Olá Bruno!

    Tentei fazer para limpar TextBoxs e não to conseguindo, podeira me dar uma luz?

    Obrigado!

    []'s

    Sérgio Pitta

    quinta-feira, 4 de novembro de 2010 12:44
  • Acrescente um elseif para o TextBox:

      private void LimpaControle(Control ctrl)
        {
          foreach (Control item in ctrl.Controls)
          {
            if (item.HasChildren)
            {
              LimpaControle(item);
            }
            if (item.GetType() == typeof(ComboBox))
            {
              ComboBox cbo;
              cbo = (ComboBox)item;
              cbo.SelectedIndex = -1;
            }
            else if (item.GetType() == typeof(TextBox))
            {
              TextBox txt;
              txt = (TextBox)item;
              txt.Text = string.Empty;
            }

          }
        }


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    www.maestrodotnet.com.br
    sexta-feira, 5 de novembro de 2010 01:16
  • Vlw Bruno,

    Obrigado!

    at.,

    Sérgio Pitta

    sexta-feira, 5 de novembro de 2010 19:57