1

私がやりたいこと:
->MDIフォームを開く
->プロジェクトのメインフォームを閉じる
->アプリケーションを閉じずに

私がしたこと:

frmMain fm = new frmMain();
fm.Show();
this.Close()

どんな助けでもいただければ幸いです!:)

4

3 に答える 3

2

Hideメソッドを使用できます。

これを試してみてください:

frmMain fm = new frmMain();
this.Hide();
fm.Show();

または:

frmMain fm = new frmMain();
this.Hide();
fm.ShowDialog();
this.Show();

後者はウィンドウを開き、閉じると前のウィンドウが再び表示されます。

于 2012-06-12T20:18:03.893 に答える
2

これを回避するために私がしたことは次のとおりです。

this.Hide()

おそらくこれを行うための最良の方法ではありませんが、それでも。

電話することでそれを取り戻すことさえできます

this.Show()
于 2012-06-12T20:19:32.380 に答える
2

実際にメインフォームを閉じたいが、アプリケーションを実行したままにしておきたい場合は、デフォルトのクラスでアプリケーションコンテキストを起動させることができます。

using(MyContext myContext = new MyContext())
{
    Applicaton.Run(myContext);
}

ここで、MyContextから継承しApplicatonContextます。

その後、アプリケーションコンテキストは、必要に応じてフォームをロードして閉じることができます。これは、コンテキストでログインフォームを起動する1つのプロジェクトで行います。それが正常に完了した後にのみ、メインフォームがロードされます。また、メインフォームを終了し、ログインフォームを再ロードすることで、プログラムからの「ログアウト」を処理できるようにします。

編集:コメントから、あなたが探しているのは.Hide()だけかもしれません。これによってフォームがアンロードされることはなく、.Show()を呼び出すとフォームが復元されます(たとえば、タイマーまたはメインフォームへの参照を保持する別のフォームを使用して呼び出しを行うことができます)。私はApplicationContextを使用することを好みます。これは、ユーザーが閉じようとする可能性のあるUI要素からプログラムをメモリ内に保持する責任があるためです。

于 2012-06-12T20:21:47.250 に答える