0

私のwinformsプロジェクトには3つのフォームがあり、それらのすべてにForm2を開く同じコードを起動するボタンがあります。このコードを同じプロジェクト内のクラス ファイルに配置するか、別のクラス ライブラリに配置して、コードを一元化する必要があります。現在、コードは以下と同じフォーム内にあります。

frm1 entryform = (frm1)Application.OpenForms["frm1"];

if (entryform == null)
{
    entryform = new frmMainMenu();
}
entryform.StartPosition = FormStartPosition.Manual;
entryform.Location = this.Location;
entryform.Show();

this.close();

このコードを Form1、Form2、Form3 から一般的なフォームに移動すると、呼び出し元のフォームにアクセスして行を置き換えることができませんthis.close(); Method.CallingForm.Close() のようなプロパティはありますか? 助けてください

フォームをパラメーターとして渡したくありません。フォームが重すぎて渡せません。他の代替案はありますか?

4

2 に答える 2

2

重いので、フォームをパラメータとして渡すことについて心配する必要はありません。

フォームは参照型であり、パフォーマンスが低下することはありません。

ベスト プラクティスを検討する場合は、フォームを閉じる必要があるときに、中央のクラスにイベントを発生させる必要があります。

于 2012-04-27T03:01:43.947 に答える
0

フォームをパラメーターとして渡します。

渡すのはフォーム全体ではなく、フォームへの参照であるため、渡されるフォームはそれほど重くありません。

于 2012-04-27T03:03:18.710 に答える