2017-01-24 6 views
-2

私はvs2013 c#windowsフォームで作業しています。 form1には、クリックすると2番目のフォームform2に移動するボタンがあります。 Form2は社内プログラムの領収書になりますので、1回以上開く必要があります。しかし、のform2にはformという形式の情報がありますので、 Form2 form2 = new Form2();というコードは、ローカルではなくbutton_clickというイベントではなく、クラスレベルで記述されています。これは、私が2回目にform2を開こうとするたびにランタイムエラーを引き起こします。 form2.show();フォームを2度目に開くとランタイムエラーが発生する

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

をどのように私は離れてクラスレベルから上記のコードを移動せずにこの問題を解決することができます。これは私が書いたところで、受信メッセージのですか?ありがとうございました。

+3

「閉じる」ではなく「非表示」を使用してください。 –

+0

または、あなたが閉じるときに処分しない 'ShowDialog'を使用してください(ただし、適切に処分してください) – Crowcoder

答えて

0

私は

あなたはForm2ののconstructrorにobjektを追加しようとするかもしれない.....もう少し情報が必要かもしれませんが。 その後、必要なデータを含むこのオブジェクトをForm1からインポートします。 (Form1の中に)このよう

ユーザーレビューmyGuest =新しいゲスト(); Form2 form2 =新しいForm2(myGuest);フォーム2は

は、フォーム2で(ゲストmyGuest)

のオブジェクトを作成 公共フォーム2のようなコンストラクタ(ユーザーthisGuest){} を書く...などの方法を使用する:( InitializeGUI ){myGuest = thisGuest}

希望します。

関連する問題