Ir ao conteúdo
  • Cadastre-se

Habilitar e desabilitar botoes do form principal através de uma classe externa


Will.osprimosBH

Posts recomendados

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 botões 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????

Link para o comentário
Compartilhar em outros sites

então cara no frmPrincipal você cria um entancia do ClassHabilitaDesabilitaBotoes passando como parametro o this, ficando assim:


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

fiz uns testes aqui e deu certo, ve se é isso que você esta querendo.

Link para o comentário
Compartilhar em outros sites

Cara eu não entendi o porq disso:


private frmPrincipal objFrmPrincipal = null;//porq você crio este!

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

cara eu achoq se você fizesse assim:

ClassHabilitaDesabilitaBotoes HabilitaDesabilitaBotoes = new ClassHabilitaDesabilitaBotoes();

desse modo ia ter menos complicaçoes e tamem esta correto, posso estar boiando mas pelo q entendi da certo também, comentem o maximo este ta complicado eu acho falou valeu

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!