1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Unload Forms VB.Net

Discussão em 'Programação' iniciada por Dark_Webster, 8 de Outubro de 2008. (Respostas: 15; Visualizações: 2082)

  1. Dark_Webster

    Dark_Webster Power Member

    Boas!

    Queria saber como consigo fazer unload a um form sem fechar o programa inteiro.
    Ou seja, estou no splash screen e quero carregar o form principal, e depois descarregar o splash screen.
    Por exemplo tenho:

    Código:
            Dim form As New formprincipal
            form.Show()
            TimerLoad.Stop()
    
    O timer serve para carregar estas instruções, visto que tenho uma musica a tocar quando se carrega o form seguinte.

    Já experimentei Me.Close e Me.Dispose, mas estes fecham o programa. Já usei Me.Hide, mas depois quando fecho o outro form o programa acaba por não se fechar. Algumas sugestoes?
     
  2. ups

    ups Power Member

    Tens de usar Hide e CLose na forma do splash, nao da principal.
     
  3. Dark_Webster

    Dark_Webster Power Member

    Sim, mas este codigo é do splashscreen.
     
  4. ti17

    ti17 Power Member

    nao podes fazer "Me.hide" pois o "Me" corresponde a form principal. logo tas a esconder a form principal por isso é k nao te da.. tens k declarar uma form como fizes.t no exemplo k mostras-t
    assim:

    Código:
    Dim form As New formprincipal 
    Dim form2 As New "aqui poes o nome da primeira form k aparece"
    form.Show()
    form2.hide()
    TimerLoad.Stop()
    
    isto dentro do timer como esta ai em cima

    pelo k percebi era esta a tua duvida.. espero k te ajude
     
    Última edição pelo moderador: 8 de Outubro de 2008
  5. Dark_Webster

    Dark_Webster Power Member

    Até ai tudo bem, mas quero encerrar mesmo o splashscreen depois de carregar o form que quero.
     
  6. ups

    ups Power Member

    Depois de carregares a form que queres fazes

    Unload formSplash
     
  7. ti17

    ti17 Power Member

    bem ja a algum tempo k nao mecho em VB.. mas lembro-me k tbm tinha esse problema.. resolvia-o assim.. no botao de fechar o programa ponha
    "Nome da form principal".close
    pork se fechares a form principal o programa fecha todo..
    é isto k kerias??
     
  8. Dark_Webster

    Dark_Webster Power Member

    Vou por isto de outra maneira:

    Tenho o Form1(splash) e o Form2(o que eu quero carregar).

    O programa abre o form1, carrego num botao e ele carrega o form2. Depois quero fechar o form1 por que se fechar o form2, o programa fica aberto.

    EDIT - E por mais curioso que seja, nao consigo aceder as opçoes de shutdown do programa.
     
  9. ups

    ups Power Member

    SImples. Faz uma nova form que seja a splash.

    O programa comeca sempre com 1 form inicial e é que controla se o programa esta a correr ou nao.
    Logo a splash nao pode ser a form1 inicial.

    Ve nas opcoes de compilacao qual a form inicial e troca para a form2.
    No arranque do programa mostra a form de splash e quando a form2 carregar fazes o unload.
     
  10. ti17

    ti17 Power Member

    sim ja entendi.. como tu fazes Form1(splash).hide ela fika escondida ou seja nao a fechas.t
    depois tu fechas a form2 mas o programa corre na mesma mas com a form1 escondida..

    a maneira facil de fazer isso é na form2 no teu botao para fechares tens k fechar a form principal a form(mae) pork essa fechando o programa fecha todo.. agora nao sei kal das duas é a principal tu é k tens k ver isso aí..

    tens o mesmo problema k eu.. eu resolvia assim..
     
  11. Dark_Webster

    Dark_Webster Power Member

    O meu unico problema e nao conseguir alterar as opçoes de shutdown do programa, porque senãp ja estaria resolvido :(
     
  12. ti17

    ti17 Power Member

    mas da maneira k te disse nao funciona??
     
  13. Dark_Webster

    Dark_Webster Power Member

    Já experimentei por o form2 como principal, mostrar em primeiro lugar o form1 e dps voltar a mostrar o form2 e fazer close/unload ao primeiro. Mas axim aparecem me dois form2, mesmo que faça hide ao 1º que aparece.

    Lembrei-me de uma coisa. Não será possível passar o estatuto de form principal para o form2 durante o runtime?
     
  14. ti17

    ti17 Power Member

    se da para fazer isso eu nao sei.. mas pork é k keres fazer isso??

    pork nao fechas logo a form1??
     
  15. ups

    ups Power Member

    Acho que estás a complicar.

    Fazes 2 forms: formMain e formSplash (mais fácil de seguir que form1 e form2)

    A principal (que controla o programa) é a formMain.
    Ao iniciar o programa, este automaticamente carrega a formMain. Se não queres que apareça automaticamente, precisas de mudar essa opção na formMain.
    Também ao iniciar o programa mostra a formSplash.
    Quando a formMain estiver "pronta" (entretanto ligas a opcao de visible) ao carregar todos os seus componentes, fazes unload da formSplash.

    Uma nota: Splash screens são só uteis se de facto servirem para mostrar ao utilizador que o programa arrancou mas a janela principal ainda não está disponivel para ser mostrada (ainda está a carregar modulos por exemplo). Mostrar splash so por mostrar só irrita o utilizador que (let's face it) só quer é usar o programa e não ter que esperar para isso acontecer.
     
  16. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

Partilhar esta Página