Odchycení události po načtení formuláře   otázka

VB.NET, WinForms

Ahoj, prosím o radu ohledně jedné události. O co jde. Mám aplikaci, na začátku je splash screen a chci udělat to, že pokud se aplikaci nepodaří načíst nastavení (to se ukládá přes my.setting) upozorním uživatele že se jedná o první spuštění aplikace (nebo se nepodařilo najít konfigurační soubor) a hned mu otevřu formulář kde může vše nastavit (jedná se o databázovou aplikaci takže nastavení je nutné). Potud vše v pořádku, vím jak to udělat. Co nevim je, do jaké události formuláře tento kód dát. Pokud ho dám do události form_load, kod se spustí už při splash screenu a to mi dělá problémy. Já pořebuji aby se normálně zobrazilo hlavní okno aplikace a až potom se provedla kontrola. Pokoušel jsem se najít i nějákou událost u splash screenu ale nic. Vím že u web aplikací je událost něco ve smyslu Page_Load_Complete nebo tak něco, není tu nějáká obdoba? Nebo na to jdu uplně špatně? Díky za jakoukoliv radu:)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Původně jsem vám chtěl poradit abyste kód umístil do metody ošetřující událost FormClosing nebo FormClosed u formuláře představujícího SplashScreen. Jenže k mému udivení toto nefunguje, a nefunguje dokonce ani kód napsaný do destruktoru! Bohužel mám takové zkušenosti, že SplashScreen nastavený ve vlastnostech projektu, My.Settings a podobné "Code-Behind" automaticky generované humusárny do kterých není možno zasahovat dělají jen problémy, a proto je nejlepší si to napsat sám. Toto radím i vám, není problém SplashScreen zavolat např. z konstruktoru hlavního okna.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky za radu. Zkusil jsem to vyřešit tak,že splashScreen volám z události form_load hlavního formuláře. Teď jsem v práci takže tu nemám kod ka aplikac, ale vytvořil jsem si cvičnou a vypadá to že by to mohlo fungovat. Vyřešil jsem to následovně (podle mě i nejjednodušeji):

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SplashScreen1.Show()
        SplashScreen1.Refresh()
        Threading.Thread.Sleep(5000)
        SplashScreen1.Close()
        kontrolaNastaveni()

    End Sub

Vypadá to ok, ještě zkusím co to udělá doma.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A ještě jsem postřehl jednu věc která mi příjde přinejmenším zajímavá. Pokud jsem jméno procedury ze cvičných důvodů nahradil pouza vyvoláním msgboxu "msgbox("Pokus")" tak doma, kde mám splashScreen přidaný v nastavení se mi msgbox vyvolal při splashScreenu ale co je hlavní i když jsem nepotvrdil Ok hlavní okno aplikace se zobrazilo! Tady už to funguje jak má (tzn. okno aplikace se nezobrazí dokud nepotvrdím msgBox)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback