none
Chybová hláška - instance objektu

    Dotaz

  • Dobrý den,

    píši program k maturitě a vyskytla se mi tu náhlá chyba. Do teď vše fungovalo bez problémů, ale poté, co jsem ve Form2 vyměnila TextBox za NumericUpDown, program mi vypisuje takovouto chybu.

    Snažila jsem se tento problém vyřešit na jiných fórech, s přáteli, s učiteli, ale nikdo mi nedokázal poradit, proto jsem se rozhodla napsat sem. Doufám, že mi někdo z Vás poradí.

    Děkuji mnohokrát

    Jelínková Iveta

    24. dubna 2012 9:27

Všechny reakce

  • Přístup k Form2.Visible vrací Reference to a non-shared member requires an object reference (viz okno Watch), takže Form2 je zřejmě jen typ, ne instance.

    Pátrejte po tom, proč je Form2 Nothing - možná se v daném průchodu kódem vůbec neplní, možná kód vytvářející instanci selže (to by mohlo vysvětlit, že to rozbila změna na na Form2).
    24. dubna 2012 11:46
  • Aha, takže nějakej návod trošku pro debily? =)
    24. dubna 2012 16:24
  • No já nevím co přesně děláte - a vy máte v ruce inner exceptions, aktuální hodnoty proměnných atd., my ne. Určitě by stálo za námahu podívat se na všechny vnitřní výjimky a možná i zbavit váš kód všeho nesouvisejícího s tímto konkrétním problémem (to samo o sobě často pomůže najít chybu) a zveřejnit ho, takže bychom si to mohli také spustit.

    25. dubna 2012 11:14
  • http://uloz.to/xGsGNAt/project-rar

    Zde je celý program. Heslo pro otevření je1ý.ě.+ííč1y.e.+iic.

    Doporučuji nejprve přečíst manual. Upozorňuji, že jsem opravdu teprve začátečník, takže to nebude asi nějak převratný program.

    Mockrát děkuji za radu. :)

    30. dubna 2012 12:02
  • Problém odhalen. Vnitřní výjimka by bývala opravdu pomohla.

    V dialogu s informacemi o výjimce je odkaz "View details". V detailech je pak možné najít nasledující call stack:

    Očividně se volá nějaká systémová factory metoda, která vytváří instanci formuláře, ale selže. Po chvilce zkoumání se ukázalo, že problém je v ComboBox1_SelectedIndexChanged. Tam si můžeš dát breakpoint a prokrokovat, každopádně chyba je vidět na následujícím obrázku.

    SelectedItem je Nothing, proto volání ToString() vyhodí výjimku a konstrukce formuláře selže.

    Off topic, ale ještě bych doporučil bych dvě věci ohledně programování obecně.

    1. Najdi si vždy pár vteřin na pojmenování proměnných, metod atd. Kód se jednou napíše, ale mnohokrát čte, tak by měl být co nejčitelnější.
    2. Nekopíruj kód, třeba ta cesta k souborům by měla být na jediném místě, aby se dala snadno změnit, ne rozkopírovaná všude po programu.
    • Navržen jako odpověď Petr Barták 21. června 2012 21:18
    4. května 2012 7:57
  • Pro příště: nedávej sem obrázky celého Full HD monitoru stačí část kódu a chyba nedávej tam třeba hlavní panel.
    24. května 2012 13:52