我遇到了這個問題,其中有一個非常大的窗體(winforms)通過Activation.CreateInstance(Type)
方法加載,因爲加載容器用於不同的表單。它第一次打開罰款,但如果我關閉它然後重新打開它,它將總是在通過InitializeComponent()
方法中途崩潰,在那裏它跳轉到Dispose()
方法,崩潰在NullReferenceException
。第二次打開時出現大表格崩潰
我目前的理論是,Dispose()
電話是從沒有完成的時間,目前正設法處置當前表單形式的一個實例。 (這是否有意義?)另一方面,我認爲這可能是導致問題的Activation.CreateInstance()
,但這是我第一次看到這個類,所以我不太確定。
我今天早些時候在調試的時候做了一個測試,如果我在崩潰的InitializeComponent()
的每一行上等了幾秒鐘,我就沒有犯錯。
爲什麼不只是'隱藏'而不是'close'?如果你的「處置」理論是正確的,那應該沒問題。 – KSdev
我試過'隱藏'而不是'close',但它仍然崩潰。有什麼方法可以知道一個對象是否正在處理,並阻止UI重新打開表單直至完成? –
你能提供樣本代碼嗎? – Grundy