この質問の答えを見てください。受け入れられた回答の2番目のコメントを試しました。問題は「Application.OpenForms[0]」にあります。「このフォームの MdiParent として指定されたフォームは MdiContainer ではありません。パラメータ名: 値」というエラーが表示されます。次に、展開して開いているフォームの数を確認します。私は今発見した驚くべき結果を得ました。2 つのオープン フォームがあります。それらの1つは、私が持っているLoginFormです this.Hide(); ログインに成功した場合。this.Close(); に変更したとき。アプリケーションは閉じられました。まだ開いているのはなぜですか?また、アプリケーションを閉じずに閉じるにはどうすればよいですか?
質問する
3047 次
1 に答える
0
まず、フォームを閉じたときにアプリケーションが完全に閉じてしまう場合は、メイン フォーム、つまり以下で指定されたフォームを閉じようとしていることが原因である可能性が最も高いです。
Application.Run(new MainForm());
そのメインフォームを閉じているログインフォームですか?
次に、フォームを MdiParent にする場合は、IsMdiContainer プロパティを true にする必要があります。
3 番目に、Application.OpenForms[0] に依存せず、代わりにそれらを繰り返し処理し、次のように名前で正しいものを選択します。
FormCollection fc = Application.OpenForms;
foreach (Form frm in fc)
{
if (frm.Name == "Main Form")
do what you need to do...
}
お役に立てれば。
于 2013-03-12T12:41:16.700 に答える