Tazatel
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
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). -
-
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.
-
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.
-
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ě.
- 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ší.
- 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 čtvrtek 21. června 2012 21:18
-