Jump to content

Recommended Posts

Posted

Bom dia a todos.

Tenho dois forms em c# , um deles é um form de "Professores" , o outro é de "pesquisa" . O acesso ao form "Pesquisa" está num botão do form "Professores" .

Utilizei o seguite codigo :

pesquisa pesq = new pesquisa();
pesq.show();

Depois deste codigo , eu acedo ao form "Pesquisa" . Nota que não quero que o form "professores" feche . A pesquisa pode ser devido a muitas coisas , por exemplo apenas para consulta .

O que se passa é que , caso eu queira modificar , ao enviar os valores da pesquisa de volta para o form "professores" , ele abre um novo form , em vez de utilizar o form que já está aberto .

Alguem que me possa ajudar neste problema ?  :wallbash:

Posted

Caso queiras modificar o quê exactamente?

O código que mostraste não tem nada a ver com o problema que colocaste. O que é que estás a fazer para aparecer um novo form Professores?

Desaparecido.

Posted

Bom dia .

O codigo que coloquei, foi apenas o codigo para abrir o form pesquisa .

A minha duvida é como enviar os valores que estão na datagridview para o form que já está aberto , porque como tenho feito, ele abre-me um novo form e fico com dois forms "professores" abertos .

Obrigado

Posted

Podes passar o teu form professores pelo construtor do form pesquisa e depois fazes uma atribuição a um atributo do form professores.

Ou então fazes do teu form pesquisa uma Dialog, que ao clicares em OK no teu form pesquisa vais fazer um get a partir do form professores de um ou mais atributos que tenhas no form pesquisa.

Posted

Podes passar o teu form professores pelo construtor do form pesquisa e depois fazes uma atribuição a um atributo do form professores.

Ou então fazes do teu form pesquisa uma Dialog, que ao clicares em OK no teu form pesquisa vais fazer um get a partir do form professores de um ou mais atributos que tenhas no form pesquisa.

Não entendi :s

Posted

Tens o teu form Professores que cria uma nova instância do form Pesquisa, certo?

Então, podes passar a instância do form Professores no construtor do form Pesquisa, para que no form Pesquisa possas passar os valores que quiseres para o form Professores.

A outra forma que referi é fazeres do teu form Pesquisa um formulário tipo as MessageBox. Que tem um AccepteButton e um CancelButton.

Onde no formulário Professores poderias fazer o seguinte:

pesquisa pesq = new pesquisa();
if(pesq.ShowDialog() == DialogResult.OK)
{
    prof.qq_coisa = pesq.qq_coisa; //para ires buscar o que quiseres ao form pesquisa
    pesq.Dispose(); //para "destruires" o formulário pesquisa
}
Posted

O problema não é em passar os dados .

Porque quando o faco, faco-o correctamente .

O problema é que quando volto do form pesquisar para o form professores, fico com dois forms professores abertos.

O que eu já tinha , e o que não fechei quando fui para o form pesquisa .

Posted

...

se calhar era útil aprendes a programar sem usar o metodo try {very_simple_dummy_problem();} catch {spam(p@p);}

se ficas com 2 forms "iguais" abertos , deves rever a tua lógica de instruções.

quanto ao "teu problema" em instanciar forms que "ficam zoombies" ...

using (pesquisa pesq = new pesquisa()){
  if (pesq.showDialog()==DialogResult.OK){

  }
}

ask google  http://www.java2s.com/Tutorial/CSharp/0460__GUI-Windows-Forms/CallShowDialogonFormobject.htm

I used to have a life ... but i bought a programmable machine in 1982 ...

Posted

Como é que navegas entre os formulários?

Provavelmente estás a criar uma nova instância do formulário professores no teu formulário formulário pesquisa.

Sim crio . neste exemplo é para ir do form professores , para a pesquisa :

pesquisa pesq = new pesquisa();
pesq.show();

para ir do form pesquisa de volta para o professores, pretendo fechas o que tenho aberto , e abrir um novo com os valores .

Eu já consigo abrir o novo form com os valores, não fecho é o que esta aberto e por isso fico com dois forms "professores" abertos . O que esta preenchido , e o que estava aberto que é o que pretendo fechar.

Posted

Se vais do form professores para o form pesquisa e depois voltas novamente ao professores, não precisas de criar um form professores novo.

Basta passares os valores para o form professores que já existe e fazeres um Dispose() ao formulário pesquisa.

Posted

Sim, o que está certo.

Agora vamos cair no que eu disse inicialmente. Vais ter de passar a tua instância do form professores para o form pesquisa, no form pesquisa passas os valores para o form professores e então depois fazes então o dispose().

Posted

Ok. Mas estás com a certeza a fazer qualquer coisa como FProfessores professores = new FProfessor(); no teu form Pesquisa, certo?

Em vez disso passa a instância do teu form professores para dentro do form pesquisa;

pesquisa pesq = new pesquisa(this);
pesq.show();

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.