Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

osprimosbh

Habilitar e Desabilitar botões do Form Principal de uma classe externa

Recommended Posts

Boa tarde caros do fórum, estou desenvolvendo um sistema de busca em c# com arquivos, trabalho de PA, para a faculdade valendo um bocado de pontos. Estou precisando do esclarecimento de uma dúvida simples

Criei uma classe, um novo documento chamado ClassHabiltaDesabilitaBotoes

 

Nesta classe criei dois métodos um para habilitar e outro para desabilitar os botões do form principal. Segue abaixo

 

=> ClassHabilitaDesabilitaBotoes

 

class ClassHabilitaDesabilitaBotoes
   {
       /// <summary>
       /// Objeto utilizado para ter acesso aos componetes
       /// do form pricipal, estancio o mesmo como null
       /// </summary>
       private frmPrincipal objFrmPrincipal = null;

       /// <summary>
       /// Construtora da classe, recebe como parâmetro o form Principal
       /// </summary>
       /// <param name="principal"></param>
       public ClassHabilitaDesabilitaBotoes(frmPrincipal principal)
       {
           this.objFrmPrincipal = principal;
       }

       /// <summary>
       /// Método para desabilitar componentes do form Principal
       /// </summary>
       public void DesabilitaBotoes()
       {
           objFrmPrincipal.btnVisualizarAruivos.Enabled = false;
           objFrmPrincipal.btnPesquisar.Enabled = false;
           objFrmPrincipal.groupBox5.Enabled = false;
           objFrmPrincipal.gboxOperadorLogico.Enabled = false;
           objFrmPrincipal.groupBox4.Enabled = false;
           objFrmPrincipal.gboxTermopesquisa.Enabled = false;
       }

       /// <summary>
       /// Método para habilitar componentes do form Principal
       /// </summary>
       public void HabilitaBotoes()
       {
           objFrmPrincipal.btnVisualizarAruivos.Enabled = true;
           objFrmPrincipal.groupBox5.Enabled = true;
           objFrmPrincipal.groupBox4.Enabled = true;

           if (objFrmPrincipal.btnVisualizarAruivos.Enabled == true)
           {
               objFrmPrincipal.btnPesquisar.Enabled = true;
               objFrmPrincipal.btnPesquisar.Enabled = true;
               objFrmPrincipal.gboxOperadorLogico.Enabled = true;
               objFrmPrincipal.gboxTermopesquisa.Enabled = true;
           }
       }
   }

 

Minha dúvida é como estanciar esta classe no meu form principal? Fiz de 2 formas e deu erro

 

=> FrmPrincipal

// Estância da classe Metodos

 

  /// <summary>
       /// Crio um objeto da Classe Habilita e Desabilita Botoes para poder utilizar 
       /// seus métodos
       /// </summary>
       ClassHabilitaDesabilitaBotoes objClassHabilitaDesabilitaBotoes = new ClassHabilitaDesabilitaBotoes();

 

consigo fazer a chamada normalmente da seguinte forma:

            objClassHabilitaDesabilitaBotoes.DesabilitaBotoes();

 

Porém na construtora da minha classe eu passo meu parêmetro do tipo FrmPrincipal, logo a minha chamada ao metodo da classe da erro porque não forneci nenhum parametro para a construtora.

 

Como posso resolver isso???? Que paremetro posso passar na chamada do metodo??? tentei passar a FrmPricipal e não deu.... A outra forma que fiz foi estanciar o objHabilitaDesabilitaBotoes como null, sem sucesso também... Podem me ajudar????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, então eu fiz isso porém não consigo declarar o this como atributo frm principal, tem jeito???

O único local que consigo declarar o this é dentro do evento de algum botão e não como atributo da classe frm principal. Necessito chamar o objeto para desabilitar o botao em outros eventos também, desta forma eu teria que declarar um obj diferente dentro de cada método, ficaria ruim, gostaria de utilizar um só para fazer a chamada ao metodo da classe habilitaDesabilitaBotoes.

 

Como posso resolver isso???

 

Agradeço a atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.