2013-08-28 10 views
11

Mam powitanie do mojej aplikacji, ponieważ ładuje się, ale następnie trzeba mieć ten formularz blisko i formularz logowania otworzyć po naciśnięciu przycisku kontynuacji.Jak otworzyć nowy formularz, ale zamknąć stary w VB

Mój kod:

Me.Close() 
    Dim Login As New Form 
    Login.Show() 

Kiedy klikam przycisk to tylko zamyka formularz powitalny, a następnie kończy aplikację. Jeśli możesz pomóc dzięki! :)

+2

Spróbuj umieścić 'Me.Close' po' Login.Show() '. Upewnij się również, że formularz powitania nie jest Twoją główną formą ... – Alex

+0

Spróbuj rzucić okiem na ten http://stackoverflow.com/questions/17927615/when-my-form-is-hidden-and-reloaded-from -another-form-it-is-not-executing-the-co – Manny265

Odpowiedz

18

można ustawić właściwości projektu, aby wybrać "Kiedy ostatnia forma zamyka się" w rozwijanym trybu wyłączenia

Aktualizacja: -

Menu "Project" -> Właściwości "YourApp" ... -> Karta aplikacji

znajdź: "Wyłączenie Tryb”

Zmiana od

«Kiedy zamyka formularz startowy»->«Kiedy ostatnia forma zamyka»

+0

Nie można tego znaleźć. – nfell2009

+0

Sprawdź to: - http://msdn.microsoft.com/en-us/library/system.windows.application.shutdownmode.aspx –

+0

Możesz przejść do właściwości swojego projektu i tam musisz to wybrać !!! –

7

pokazać formularz przed zamknięciem.

Dim Login As New Form 
Login.Show() 
Me.Close() 
+2

Czy to samo, po prostu zamyka wszystko. – nfell2009

0

Jeśli Witamy Formularz nie jest głównym forma, po prostu trzeba umieścić Me.Close po Login.Show()

Dim Login As New Form 
Login.Show() 
Me.Close() 
3

jest shutdown mode właściwość projektu. Kontroluje to cykl życia aplikacji.

Upewnij się, że ustawienie to „Kiedy ostatnia forma zamyka”

Potem kod powinien działać zgodnie z oczekiwaniami.

Co się dzieje jest to, że trzeba, że ​​ustawienie ustawienie wyłączania „gdy formularz startowy zamyka”, więc wykonując Me.Close na formularzu startowym, to zamyka aplikację, cały kod po tej linii są skutecznie ignorowane.

0

Spróbuj ..

Na powitanie formie podczas zamykania:

Me.hide() 
Dim Login As New Form 
Login.Show() 

Na formularza logowania, gdy w przypadku załadunku:

Private Sub Login_Load(sender As Object, e As EventArgs) Handles MyBase.Load 

    WelcomeForm.Close() 

End Sub 

Spróbuje to ukryć pierwszy formularz i załadować drugi formularz . A kiedy druga forma zostanie całkowicie załadowana, spróbuje zamknąć pierwszą formę.

Upewnij się, że na karcie Aplikacja pod właściwościami projektu opcja jest ustawiona na "Kiedy ostatni formularz zamyka się".

-1

Wystarczy umieścić Hide() zamiast Close :)

więc na przykład w projekcie im robi teraz ...

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click // Button1.Click is your "continue" button 
     Hide() 
     LogInFrom.Show() 
    End Sub 
0

Jeśli zamkniesz sub formularza głównego z aplikacji Twoja aplikacja zostanie zamknięta. Można jednak zamykać i otwierać inne formularze, jeśli nie są one podrzędnymi formularzami. Może po prostu to ukryjesz.

+0

Mamy to posortowane ... dzięki i tak – nfell2009

Powiązane problemy