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

dpeneireiro

Mostrar uma janela ao abrir.

5 mensagens neste tópico

Olá a todos,

estou aqui com um problemita e gostava que alguém me ajudasse se fosse possivel.

A questão é a seguinte, tenho um programa onde tenho uma janela geral, ao carregar num botão dessa janela faz um showdialog de uma nova janela que permite pesquisar umas coisas, e ao carregar no botão pesquisar dessa nova janela, abre uma terceira janela com outro showdialog para mostrar o resultado dessa pesquisa, portanto 3 janelas encadeadas.

Acontece que, a segunda janela deve ser encerrada quando passo para a terceira e então tenho o seguinte código:

btnPesquisa_Segunda janela

......

this.visible=false;

//this.close()   --  também já tentei assim.

frmTerceiraJanela.Sowdialog();

this.close;

......

Como a instrução para chamar a nova janela é um showdialog, o this.close não funciona logo (também já tentei fechar a 2ª  janela antes de abrir a 3ª mas o resultado é o mesmo) e por isso é que a torno invisivel. mas ao fazer isto, a 3ªjanela abre por trás de tudo o resto... e apenas se vê se minimizar as outras janelas ou maximizar a 3ª janela na barra de tarefas o que é desagradável. Não posso abrir a terceira janela com um show normal porque não quero que a primeira janela fique disponivel.

Com a 3ª janela como top most funciona bem mas depois fica sempre a estorvar mesmo que não se queira visualizá-la.

Também já experimenteicolocar no load da 3ªjanela um

this.BringToFront();

this.Select();

mas nada disto funciona.... Alguma idéia???

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boax...

Provavelmente deve existir mais simples...  :-[

btnPesquisa_Segunda janela
{
...

Thread t = new Thread(new ThreadStart(T_abre_janela));
 t.Start();
 this.Close();
...
}

public void T_abre_janela()
{
 nova_janela  jn= new nova_janela();
jn.ShowDialog();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva,

O problema esta no Controlo das forms, que deve ser mantido se possivel na form mãe :D

Veja a solução que anexei.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hum.. Parece que os uploads não estão a funcionar bem...

Então é assim:

Temos 3 forms: Form1, FrmModal1, FrmModal2

na FrmModal1 cria uma propriedade boolean "RequiresSecondForm"

Codigo na Form1:

FrmModal1 frmModal1=new FrmModal1();

            frmModal1.ShowDialog();

if(frmModal1.RequiresSecondForm){

              FrmModal2 frmModal2=new FrmModal2();

                frmModal2.ShowDialog();

}

Na FrmModal1 no handler do botao que deve mostrar a segunda form modal:

this.RequiresSecondForm=true;

this.Close();

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ora ai está, ficou bastante melhor. Apesar de por vezes ainda falhar.

Ainda estou a investigar mas parece-me que o problema agora é outro. É uma thread lançada de vez em quando pelo programa, e que se for encerrada pouco antes da terceira janela ser chamada ganha o focus e lança a terceira thread para trás....

Obrigado.

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