Ir para conteúdo

POWERED BY:

Arquivado

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

rsegovia

Chamar um metodo de outro form

Recommended Posts

Bom galera, to com um problemasso aqui, eu costumo trampar com asp.net, to bem mais familiarizado com isso, bom, ai pinto um projeto e eu tenho q fazer hehe.

 

Minha dúvida é o seguinte, eu tenho 1 form com os campos e outro form para realizar busca, eu faço a consulta tudo certinho, porem, ele não exibe os dados no form q era para se exibir, acredito eu que pelo fato de eu estar instanciando uma nova classe do form ele não exibe na que já está aberta.

 

Segue uma parte do código.

 

frmDados form = new frmDados();
DataSet ds = fnc.carregaDossier(strDossier, "", "", "", "");
form.populaForm(ds);

Abraços

 

Rogério Segovia

Compartilhar este post


Link para o post
Compartilhar em outros sites

O método populaForm é de que classe? Da frmDados ou do formulário que fez esta chamada ai?

O que você está fazendo é jogar o DataSet dentro do formulário que você criou, e aparentemente você não está mostrando ele na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O método populaForm é de que classe? Da frmDados ou do formulário que fez esta chamada ai?

O que você está fazendo é jogar o DataSet dentro do formulário que você criou, e aparentemente você não está mostrando ele na tela.

Então, o metodo é do form pai, o frmDados.

 

Eu consegui fazer de uma forma aqui mas nao achei q ficou legal.

 

Criei uma variavel estatica do tipo dataset e joguei ela la e uma outra variavel boolean q eu seto para true qndo eu executo a busca (form filho) ai fica +/- assim o código

strDossier = grdConsulta.Rows[e.RowIndex].Cells[0].Value.ToString();			   
DataSet ds = fnc.carregaDadosTbDados(strDossier, "", "", "", "");
Variaveis.dsForm = ds;
Variaveis.isBusca = true;
this.Close();

Ai no meu form, eu faço o seguinte:

private void frmDados_Activated(object sender, EventArgs e)
{
	   if (Variaveis.isBusca)
	   {
		   populaForm(Variaveis.dsForm);
		   Variaveis.isBusca = false;
	   }
}

Eu achei q ficou horrivel esse codigo, mas, funcionou, gostaria de achar uma maneira "mais certa" para fazer, porque o sistema fica passando por esse meto, o Activated todo momento que o form tem o focus.

 

Abraços e obrigado.

 

Rogério Segovia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, faça um teste....

 

Troca:

Variaveis.dsForm = ds;
Variaveis.isBusca = true;
Por:

populaForm(Variaveis.dsForm);

Ai você pode remover o evento Activated.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é q se eu fizer somente isso, populaForm(Variaveis.dsForm); eu terei que declarar uma nova instancia da classe, ele até passa pela função, porém, nao popula o formulário pelo fato de ser uma nova instancia.

 

É, uma coisa teoricamente tão simples dando um trabalhão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está bem confuso, deve ser um erro bobo. Você consegue colocar mais código? A declaração de toda a classe seria interessante...

O que eu acho estranho é que você criou um método que retorna dados em uma classe do tipo formulário, isso até funciona, mas não é interessante.

Tente criar uma classe normal, que não seja um formulário para inserir seus métodos que retornam dados.

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.