Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Atualizando o Form - fechar e abrir em seguida


Danleonhart

Pergunta

Pessoal...

Tem alguma maneira prática de fazer uma atualização do Form...tipo um "Refresh", como se o finalizasse e em seguida o abrisse novamente...

É que tenho uma aplicação que em determinado momento ela sofre uma alteração e só é possível visualizar a alteração se a finalizar e abrir novamente...

Já tentei usando o "Form_Load" mas não resultou no esperado...

Editado por Danleonhart
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

não, o End vai finalizar o programa e td o q tiver depois dele não sera executado.

quanto ao Unload Me, ele vai descarregar o formulario, mas ainda vai executar o codigo q tiver depois. so q se você puser o Form1.Show, ele vai querer chamar o mesmo form com os mesmos valores q já estavam antes.

você teria q usar um segundo form pra controlar. se o Form1 foi chamado por um outro form, fica mais simples. a partir do form q chamou, você checa. quando o Form1 for fechado por conta da atualizacao, você o chama de novo.

agora, se o Form1 for o form principal da sua aplicacao, sendo o unico aberto no momento, a aplicacao deve terminar quando o Unload Me fosse chamado.

você poderia então, chamar um Form2 (q tivesse visible = false) depois do Unload Me.

dentro do load do Form2, você esperava o Form1 se fechar por completo procurando-o com um For Each dentro de Forms (quando você não o encontrar mais, significa q já fechou. ou você vai checando o Forms.Count pra ficar mais facil). se você chamar o Form1.Show imediatamente, possivelmente, ele ira mostrar o form antes de ser descarregado completamente, o q vai ter o mesmo efeito de chamar dentro do Form1 mesmo.

então depois q você souber q ele tiver fechado, você chama o Form1 de novo e fecha o Form2.

ou então você deixava um outro form oculto carregado o tempo todo controlando isso, o q parece ter mais sentido. ai você faria ele sendo o principal da sua aplicacao e quando ele carregasse, você chamava o Form1. e ai quando o Form1 fosse fechado pela atualizacao, você chamaria-o de novo a partir desse form oculto. e se o Form1 fosse fechado por meios normais, você fechava tb o principal, ou chamava um End pro programa ser finalizado corretamente.

uma gambiarra tb seria, caso você so tenha mesmo o Form1 no seu programa, depois do Unload Me (q deve fechar o programa), você chamaria um Shell() pra abrir a aplicacao de novo. parece facil, mas nem sempre vai ter um bom resultado e dependendo de como esta a sua aplicacao, você pode acabar perdendo valores q precise utilizar depois.

agora, aparentemente você esta complicando uma coisa q deveria ser simples. basicamente você só teria q fazer isso:

só o q você precisaria fazer seria chamar o codigo onde você a mostra, assim q ela acontecer.

aplicativo extra já ta parecendo demais mesmo. não parece ter muito segredo... se você quer trocar os valores dos textbox e variaveis ou qualquer coisa assim, e você sabe detectar quando acontece essa atualizacao, é só mudar os valores normalmente.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi...

Seguinte...criei um instalador de jogo...este aplicativo roda direto do CD...porém ele precisa saber se o PC do usuário tem as bibliotecas necessárias para a aplicação rodar...se não tiver ele instala...mas é preciso reiniciar a aplicação para fazer funcionar...

O que ocorreu comigo é que utilizo a DLL do Active Skin, e tem que instalar e registrar a DLL... e reiniciar a aplicação para assim ela rodar beleza !

O que fiz...criei uma aplicação "Hide" para fazer a verificação no PC do usuário...se as bibliotecas estiverem instaladas e registradas esta aplicação é fechada e inicia a aplicação do Instalador....

Queria fazer tudo isso em uma unica aplicação...por isso perguntei se existia esse método...:)

O que vale é que está funcionando ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Oks...

Por isso que estava querendo finalizar e depois iniciar novamente a aplicação, para assim ela reconhecer as bibliotecas que foram instaladas...no VB.NET tem uma maneira se não me engano é "Application alguma coisa..." :D...

Acho que com API devo conseguir...vou procurar mais ;)

se encontrar posto aqui... e sugestões são bem vindas !

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...