• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

the one

Forms c#

16 mensagens neste tópico

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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 .

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

...

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

this.dispose();

e ele vai para o form professores, mas sem o preencher :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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().

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu estou a passar da seguinte maneira :

NOMEDOFORM.NOMEDOOBJECTO.Databindings.add("text",dataset,(NOMECAMPO));

:s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenho de colocar esse codigo no form de pesquisa ?

Não será

professores profs = new professores(this);

profs.show();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora