2

新しいフォームを表示したいときはいつでも、新しいフォーム オブジェクトを作成し、現在のフォームを非表示にします。例えば:

this.Hide();
new Form2().Show();

このようにして、新しいオブジェクトが何度も作成され続け、古いフォームはまだ実行されていますが、どこかに隠されています。

これを行うための最も適切な方法を知りたいのですが、これを長い間行ってきましたが、これを行うたびに、間違っているように感じます。つまり、新しいオブジェクトを作成する代わりに、以前のオブジェクトにアクセスして表示に戻すにはどうすればよいでしょうか。

4

1 に答える 1

3

Application.OpenFormsプロパティを使用して、既に開いているフォーム オブジェクトを取得し、それを表示します。

OpenForms プロパティは、アプリケーションが所有するフォームの読み取り専用コレクションを表します。このコレクションは、インデックス位置またはフォームの名前で検索できます。

Form1 frm1 = Application.OpenForms["Form1"] as Form1 ;
if (frm1 != null)
{
    frm1.Show(); 
}
于 2013-09-25T12:29:23.047 に答える