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