[C#] Ukrywanie formy przy starcie


(Marcin Obala) #1

Witam

Chciałbym żeby program uruchomił się z ukrytą formą, nie zminimalizowaną. Ukrytą. Ustawiając visible = false albo Hide() w konstruktorze czy Load() nic nie daje. Forma się pokazuje. Próbowałem też różnych kodów ze stackoverflow ale najczęściej otrzymywałem efekt że forma się w ogóle nie pokazywała i nie dało się jej pokazać :wink:. Ma ktoś jakiś pomysł?


(LonngerM) #2

Jaki chcesz efekt uzyskać? Ukryta forma - ok. Ale jakbyś chciał ją wyświetlić?

Bo albo będzie ona zminimalizowana albo odesłana do tray`a… W innej sytuacji (tak mi się zdaje) jej nie wyświetlisz.


(Marcin Obala) #3

Wyświetla się tylko wtedy kiedy wykryje że na ekranie się coś pojawiło. Jak to znika znowu się sama chowa.


(Mirek Sztramski) #4

@Marcin511

W funkcji Main (Program.cs):

Form1 form = new Form1();

Application.Run();

zamiast

Application.Run(new Form1());

Uzasadnienie (za MSDN): Application.Run Method (Form) - Begins running a standard application message loop on the current thread, and makes the specified form visible.

PS. To jest prawidłowy sposób tworzenia głównego okna bez konieczności wyświetlania go użytkownikowi…


(Fiołek) #5

Może jeśli nie potrzeba jej wyświetlać, to jej nie wyświetlać w ogóle? Aplikacja wcale nie musi mieć okien, by działać - wystarczy nie wywoływać Application.Run i na pewno żadna formatka się nie wyświetli. Co prawda lepiej byłoby mimo wszystko wywołać Application.Run, ale niekoniecznie z formatką - można podać ApplicationContext i mieć pętle komunikatów(ale bez formatki). Ewentualnie można olać całkowicie to, i “uruchamiać” formatkę, tylko jeśli potrzeba(jeśli się zamknie formatkę przez Close lub “krzyżykiem”, Application.Run kończy swoje działanie i reszta programu wykonuje się jakby nigdy nic).