Nefunguje Form_Load   zodpovězená otázka

VB.NET, WinForms

Nesetkal se někdo s následující záhadou? Vůbec netuším, co se děje:

* Mám klasickou WinForms aplikaci

* Součástí je klasický formulář (který dědí přímo z Form)

* Na tomto formuláři je procedura Form_Load (...) Handles Me.Load

* Projekt jde přeložit a spustit

* Ale při nahrání formuláře se procedura Form_Load NEPROVEDE

Přitom vše ostatní (Activate, Shown ...) funguje naprosto normálně. V projektu je řada dalších formulářů, které fungují korektně. Aplikace je MDI, zmíněné okno je MDI Child.

Nejde ani

  Private Sub frmEditor_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Stop
  End Sub

prostě nic ;-(

Zoufalosti jako clean, rebuild a podobné už jsem vyzkoušel. Vyzkoušel jsem rovněž Debug/Release a ono to stále vzdoruje.

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

Rozhodně máte někde něco špatně, protože je-li okno MDI kontejner nebo není vyvolávání události Load neovlivňuje. Bohužel zde nemáte dostatek kódu na to, abych mohl říct v čem je problém.

Doufám že nepoužíváte zobrazování formulářů ve stylu VB6, tj. volání metody Show bez předchozího vytvoření instance...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nene, neprasím, jde normálně o instanci. Ale i kdybych zavolal Show rovnou, tak by form_load mělo fungovat. Aby to bylo ještě zamotanější, tak formulář má i konstruktor, který se normálně provede, tzn.

  Public Sub New()
    InitializeComponent()
    'atd
  End Sub

se spustí, ale form_load už nikoli. Přiznám se, že to vidím prvně v životě.

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

Odpovím si sám, kdyby to někdy někdo potřeboval ;-)

1) Při zobrazení formuláře jsem si nevšiml, že to vyhazuje výjimku "A first chance exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll", kterou jsem samozřejmě předtím neřešil - chyba!

2) Zapnul jsem vyhazování této výjimky - více třeba zde: http://blogs.msdn.com/davidklinems/archi...

3) Kdesi v InitializeComponent byl binding na neexistující vlastnost objektu, a ten to celé poslal do kytek.

4) Poučení z krizového vývoje je ladit, ladit a zase ladit.

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

Pokud by tam byl binding na neexistující ovládací prvek, tak by to ani nešlo přeložit.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Nybl tam binding na neexistující ovládací prvek, byl tam byl binding na neexistující vlastnost objektu.

nahlásit spamnahlásit spam 1 / 1 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