Chybová hláška - instance objektu
-
2012年4月24日 上午 09:27
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
所有回覆
-
2012年4月24日 上午 11:46
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). -
2012年4月24日 下午 04:24Aha, takže nějakej návod trošku pro debily? =)
-
2012年4月25日 上午 11:14
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.
-
2012年4月30日 下午 12:02
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.
-
2012年5月4日 上午 07:57
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.
- 已提議為解答 Petr Barták 2012年6月21日 下午 09:18
-
2012年5月24日 下午 01:52Pro 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.

