Usuário com melhor resposta
Fechar todos os forms

Pergunta
-
Tenho uma aplicação em vb com muitos forms secundários... E os dois principais são o de "Login" e o "Home". O "Home" é o que dá acesso aos outros forms...
Como fazer para quando o form "Home" fechar, todos os forms secundários fechem junto?
Caso eu use o formato de desligamento no modo "Form que foi iniciado" a aplicação fecha quando o login e efetuado... pq o form que inicializa é o Login e não o "Home"
E se eu usar "End" no form closing... vou ter alguns problemas em relação a isso...
Há alguma possibilidade de alterar o form de inicialização em tempo de execução? https://prnt.sc/h537kd
Exemplo: Após fazer o login, o form de inicialização é alterado para o "Home" então quando o home fechar, caso tenha outros forms abertos a aplicação finaliza, sem a necessidade de verificar janela por janela...
Não posso deixar as janelas secundárias abertas sem o form "home", então caso ele feche, preciso que a aplicação toda finalize. (Ele já faz isso, mas tenho que verificar todas esses forms de um por um... qual está aberto...)
- Editado pinkGraphs quinta-feira, 2 de novembro de 2017 02:33
Respostas
-
Bom dia,
Pelo que entendi, é isso que você precisa:
For each f as Form in My.Application.OpenForms f.Close() Next
winforms - How do I unload all open forms in VB.NET? - Stack Overflow
Propriedade Application.OpenForms (System.Windows.Forms)
Espero ter ajudado! Abraço!
Herbert Lausmann
- Marcado como Resposta pinkGraphs domingo, 5 de novembro de 2017 20:16
Todas as Respostas
-
Bom dia,
Pelo que entendi, é isso que você precisa:
For each f as Form in My.Application.OpenForms f.Close() Next
winforms - How do I unload all open forms in VB.NET? - Stack Overflow
Propriedade Application.OpenForms (System.Windows.Forms)
Espero ter ajudado! Abraço!
Herbert Lausmann
- Marcado como Resposta pinkGraphs domingo, 5 de novembro de 2017 20:16
-
Obrigado pela resposta!
O código estava me retornando a seguinte mensagem: ("coleção foi modificada talvez a operação de enumeração não seja executada")
Mas com sua resposta consegui chegar a essa que era tudo que eu precisava!
Obrigado.
'Fechar todos os formulários For i = Application.OpenForms.Count - 1 To 1 Step -1 Dim form As Form = Application.OpenForms(i) form.Close() Next i
- Editado pinkGraphs domingo, 5 de novembro de 2017 20:32