C# 第二次打开表单会导致运行时错误

C# 第二次打开表单会导致运行时错误,c#,winforms,C#,Winforms,我正在开发vs2013 c#windows窗体。在form1上,有一个按钮,单击该按钮,用户将进入第二个表单form2Form2将是内部程序的收据,因此需要多次打开。但是,由于我在form2上有列表框,其信息形式为form1,因此代码: Form2 Form2=new Form2()是在类级别编写的,而不是在按钮\u单击事件时本地编写的。每当我第二次尝试打开form2时,这会导致运行时错误。这是我在写的地方收到的消息:form2.show(), An unhandled exception of

我正在开发vs2013 c#windows窗体。在
form1
上,有一个按钮,单击该按钮,用户将进入第二个表单
form2
Form2
将是内部程序的收据,因此需要多次打开。但是,由于我在
form2
上有
列表框
,其信息形式为
form
1,因此代码:
Form2 Form2=new Form2()是在类级别编写的,而不是在
按钮\u单击事件时本地编写的。每当我第二次尝试打开form2时,这会导致运行时错误。这是我在写的地方收到的消息:
form2.show(),

An unhandled exception of type 'System.ObjectDisposedException' occurred in System.Windows.Forms.dll 
Additional information: Cannot access a disposed object.

如何在不将上述代码移出类级别的情况下解决此问题?谢谢。

我可能需要更多的信息,但是

您可以尝试在form2的构造函数中添加objekt。 然后从Form1中引入这个对象以及您需要的数据

如下所示(格式1):

Guest myGuest=新Guest(); Form2 Form2=新Form2(myGuest)

表格2:

编写一个构造函数,如 公共表格2(来宾-本来宾){} 在Form2中创建对象(guest myGuest)

…并使用以下方法: InitializeGUI(){myGuest=thisGuest}


希望有帮助:)

使用
Hide
而不是
Close
。或者使用
ShowDialog
在关闭时不会处理(但请确保根据需要处理)