尽管之前立即创建,但无法访问已处理的表单

时间:2014-07-17 17:36:30

标签: vb.net winforms

我有一个Windows窗体(VB / .NET),当我点击一个特定的按钮时,我想打开它。它第一次正确打开,但在关闭它并尝试重新打开它后,我收到此错误:

" ObjectDisposedException是unhandle:无法访问已处置的对象。对象名称:frm8100VI"

现在,我在调用它的show()方法之前创建了一个新的表单实例,所以我不知道它是如何处置的:

Dim form as New frm8100VI
form.show()

此代码在第一次调用时正常工作,但在关闭表单后,一旦它再次无法正常工作,说该对象已被处理掉。要关闭表单,我只需要调用me.close()

1 个答案:

答案 0 :(得分:1)

我猜你的“Dim form as new frm8100VI”位于另一个物体内的空间或公共场所,它永远不会超出范围。

一旦你说“form.show”,用户就使用了表单,关闭了表单。

此时你不能再在同一个表格对象上调用“form.Show”(它被处理掉)。

你必须再次重新分配“form = New frm8011VI”才能调用“form.show”(重新迭代,在处理后显示失败)

如果您试图将信息保留在“表单”对象中,那么您实际上不应该关闭表单;在form_unload事件中,您显示取消表单的关闭并简单地隐藏表单。如果你这样做,你可以再次打电话给“form.Show”。