dpeneireiro Posted November 16, 2007 at 11:36 AM Report Share #147752 Posted November 16, 2007 at 11:36 AM 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. Link to comment Share on other sites More sharing options...
RVG Posted November 16, 2007 at 11:52 AM Report Share #147756 Posted November 16, 2007 at 11:52 AM 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(); } Link to comment Share on other sites More sharing options...
Sérgio Costa Posted November 16, 2007 at 12:49 PM Report Share #147769 Posted November 16, 2007 at 12:49 PM Viva, O problema esta no Controlo das forms, que deve ser mantido se possivel na form mãe 😄 Veja a solução que anexei. Link to comment Share on other sites More sharing options...
Sérgio Costa Posted November 16, 2007 at 01:16 PM Report Share #147771 Posted November 16, 2007 at 01:16 PM 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(); Link to comment Share on other sites More sharing options...
dpeneireiro Posted November 16, 2007 at 04:16 PM Author Report Share #147819 Posted November 16, 2007 at 04:16 PM 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. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now