Unload Forms VB.Net

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?
 
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:
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??
 
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.
 
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.

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.
 
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..
 
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?
 
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?

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.
 
Back
Topo