我遇到了这个问题,其中有一个非常大的窗体(winforms)通过Activation.CreateInstance(Type)
方法加载,因为加载容器用于不同的表单。它第一次打开罚款,但如果我关闭它然后重新打开它,它将总是在通过InitializeComponent()
方法中途崩溃,在那里它跳转到Dispose()
方法,崩溃在NullReferenceException
。第二次打开时出现大表格崩溃
我目前的理论是,Dispose()
电话是从没有完成的时间,目前正设法处置当前表单形式的一个实例。 (这是否有意义?)另一方面,我认为这可能是导致问题的Activation.CreateInstance()
,但这是我第一次看到这个类,所以我不太确定。
我今天早些时候在调试的时候做了一个测试,如果我在崩溃的InitializeComponent()
的每一行上等了几秒钟,我就没有犯错。
为什么不只是'隐藏'而不是'close'?如果你的“处置”理论是正确的,那应该没问题。 – KSdev
我试过'隐藏'而不是'close',但它仍然崩溃。有什么方法可以知道一个对象是否正在处理,并阻止UI重新打开表单直至完成? –
你能提供样本代码吗? – Grundy