Windows Forms - okno logowania a Application.Run(Form)

0

Cześć, robię aplikację, która będzie wymagała zalogowania aby wykonać w nie jakiekolwiek operacje. Algorytm ma wyglądać tak:

  1. Wyświetlenie okna logowania. Po zalogowaniu zniszczenie okna.
  2. Wyświetlenie 'splash screen', który w osobnym wątku sprawdza online wersję programu/pobiera aktualizacje
  3. Wyświetlenie głównego okna programu

Jak powinna być skonstruowana taka aplikacja?

Czy w funkcji Program.Main() powinienem wywołać Application.Run() z przekazaniem do Run formatki logowania, a po zalogowaniu tworzyć splash screen niszcząc okno logowania? (następnie splash screenie analogicznie utworzyć okno główne).

A może całkowicie przed odpaleniem Application.Run() powinienem w Program.Main() utworzyć formatkę logowania, potem zamknąć i pokazać splash screen, a na końcu do Run() przekazać już główne okno programu?

Jaka jest najlepsza metoda na zrobienie takiej sekwencji okien?

0
pytający bobek napisał(a):

A może całkowicie przed odpaleniem Application.Run() powinienem w Program.Main() utworzyć formatkę logowania, potem zamknąć i pokazać splash screen, a na końcu do Run() przekazać już główne okno programu?

Tak właśnie powinieneś zrobić.

0

Możesz mieć kilka Application.Run pod rząd, każde z inną formą.

Application.Run(new Form1());
Application.Run(new Form2());

Efekt będzie taki, że druga forma otworzy się po zamknięciu pierwszej.

0

Ok, doczytałem trochę i wygląda na to, że do Run() powinienem jednak przekazać okno główne programu zanim wyświetlę jakąkolwiek inną formatkę.

Potem okno główne można ukrywać i pokazać okno logowania, ale lepiej nie pokazywać żadnego innego okna przed Run() bo podobno Windows może zaszaleć i po zamknięciu pierwszej formatki całkowicie zamknąć program.

0

Nie, nie może Windows zamknąć programu po zamknięciu pierwszej formatki. Run() uruchamia pętlę komunikatów, która nie jest magiczna i może być więcej niż jedna w programie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1