Usuário com melhor resposta
Esconder um formulario pai a partir de um filho e depois chama-lo de volta

Pergunta
-
Caros,
Estou com a seguinte questão para o meu sistema, ao chamar as opções básicas do menu ou toolstrip eu abro uma tela de pesquisa generica com os dados do cadastro selecionado, a partir desta tela ao clicar num botão incluir o sistema abrira uma nova janela e ai eu gostaria de esconder esta janela generica de pesquisa, só que ao fechar a janela filha de inclusão que chamei teria que chamar a janela de pesquisa de novo atualizando-a. Como fazer isto sendo que estou abrindo a janela filha com .show ao invés de .showdialog ?
Exemplo do Botão incluir da janela de pesquisa:
Dim frm as new frmincluir
frmsearch.hide (ou me.hide)
frm.show()
Desde já agradeço a atenção recebida.
Respostas
-
Marco não sei se essa é a melhor maneira, mas fiz uns testes aqui e funcionou, veja:
Private WithEvents frmfilho As New Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'abre form filho a partir de um botão no form pai frmfilho.Show() End Sub Private Sub frmfilho_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles frmfilho.FormClosed 'mostra form pai ao fechar formfilho Me.Show() End Sub Private Sub frmfilho_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles frmfilho.Load 'esconde form pai ao abrir formfilho Me.Hide() End Sub
Att.,
Jeimes Ribeiro
"Caso a resposta seja útil, marque-a como certa."
- Editado Jeimes Ribeiro quinta-feira, 28 de junho de 2012 13:42
- Marcado como Resposta Marco Aurélio quinta-feira, 28 de junho de 2012 14:49
Todas as Respostas
-
Olá Marco Aurélio
Tente isto:
Private Sub frmFilho_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated frmPai.Hide() End Sub Private Sub frmFilho_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed frmPai.Show() End Sub
Att.,
Jeimes Ribeiro
"Caso a resposta seja útil, marque-a como certa"
-
Caro Jeimes,
Testei mas dentro do formulário filho não tenho acesso ao método hide e show do formulário pai, como faço para acessar estes métodos dentro do formulário filho ? tenho que passar o formulário pai como parametro pra ele ?
Mais uma vez agradeço a atenção recebida.
-
Fiz um teste com este exemplo que lhe passei e funcionou.
No exemplo que te passei eu não escondo o formulário a partir do botão incluir que você tem no form de pesquisa (pai), eu escondo o formulário de pesquisa ao ativar o formulário de inclusão e depois mostro novamente quando o formulário de inclusão fechar.
Faça um teste utilizando o próprio nome do formulário, ou seja:
Exemplo: frmpesquisa.hide()
Se puder dar mais detalhes, talvez possa ser útil.
Att.,
Jeimes Ribeiro
-
Caro Jeimes,
A dificuldade que estou encontrando é que o frmsearch foi criado em tempo de execução, por isso não consigo acessar as suas propriedades do formulário filho.
Dim FrmSearch as new FrmSearchGeneric
ai de dentro for FrmIncluir que foi chamado a partir do FrmSearch eu não consigo acessar as propriedades dele, e um outro agravante é que este frmsearchgeneric esta em uma dll. Tem solução ?
Mais uma vez agradeço a atenção recebida.
-
Marco não sei se essa é a melhor maneira, mas fiz uns testes aqui e funcionou, veja:
Private WithEvents frmfilho As New Form Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'abre form filho a partir de um botão no form pai frmfilho.Show() End Sub Private Sub frmfilho_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles frmfilho.FormClosed 'mostra form pai ao fechar formfilho Me.Show() End Sub Private Sub frmfilho_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles frmfilho.Load 'esconde form pai ao abrir formfilho Me.Hide() End Sub
Att.,
Jeimes Ribeiro
"Caso a resposta seja útil, marque-a como certa."
- Editado Jeimes Ribeiro quinta-feira, 28 de junho de 2012 13:42
- Marcado como Resposta Marco Aurélio quinta-feira, 28 de junho de 2012 14:49
-