Zatvorenie jedného okna pri otvorení druhého – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zatvorenie jedného okna pri otvorení druhého – .NET – Fórum – Programujte.comZatvorenie jedného okna pri otvorení druhého – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
ing0
Stálý člen
19. 1. 2014   #1
-
0
-

Ahojte, už viac krát som to potreboval, ale zatiaľ som to vždy nejako obišiel

Môj problém je v tom, že chcem si napríklad spraviť splash screen, tak ho nastavím ako štartovací form, kde potom nastavím časový limit pre otvorenie druhého formu, po tomto čase sa mi otvorí druhý form a chcem prvý zavrieť... samozrejme použijem me.close ale to mi zároveň s splash screenom zavrie aj druhý form... me.hide síce funguje, ale splash vlastne ostáva otvorený, tým pádom keď zavriem aj druhý form, tak program ostáva stále spustený...

viete mi nejako poradiť ako to mám teda riešiť? vďaka

EDIT: momentálne ma napadlo takéto riešenie, ale neexistuje niečo jednoduchšie, aby som nemusel toto použiť?

    Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        SplashScreen1.Close()
    End Sub
Nahlásit jako SPAM
IP: 178.143.217.–
V programovani som uplna lama, ale som samouk tak sa nesmejte
Řešení
m4r100
Návštěvník
19. 1. 2014   #2
-
0
-
Vyřešeno Nejlepší odpověď

Jde to vyresit par zpusoby. Takovy nejvic logicky zpusob je jit o uroven vys. Nezapinat hned MainForm automaticky, ale sam si zvolit co se stane pri zapnuti (Startup) aplikace. Pokud pouzivas WPF, tak v App.xaml uplne smaz StartupUri="..." a v souboru App.xaml.cs, uvnitr tridy, rozsir metodu OnStartup o vlastni implementaci.

public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            var splashScreen = new SplashScreen();
            var mainWindow = new MainWindow();

            splashScreen.ShowDialog();
            mainWindow.Show();
        }
    }

Na zacatku metody musis definovat vsechna okna, ktera budes zobrazovat, jinak to nebude fungovat.

ShowDialog blokuje thread, takze se bude cekat az se splash screen sam ukonci a potom se zobrazi mainWindow. Muzes tady pouzit misto toho eventy.

Nahlásit jako SPAM
IP: 89.176.251.–
ing0
Stálý člen
20. 1. 2014   #3
-
0
-

#2 m4r10
Ďakujem, hneď sa na to pozriem

EDIT: používam Windows Form, takže to bude asi inak

EDIT2: tak vo Windows Form a VB.NET je to v application.designer.vb a ďalej som sa už orientoval podľa tvojho návodu a funguje to presne ako píšeš

Nahlásit jako SPAM
IP: 213.81.137.–
V programovani som uplna lama, ale som samouk tak sa nesmejte
JardaJirava0
Stálý člen
29. 1. 2014   #4
-
0
-
Nahlásit jako SPAM
IP: 77.78.85.–
MCAD, MCPD
http://jirava.net/blog
http://xaml.cz - Magazín moderních technologií založených na XAML
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 59 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý