0

この質問の答えを見てください。受け入れられた回答の2番目のコメントを試しました。問題は「Application.OpenForms[0]」にあります。「このフォームの MdiParent として指定されたフォームは MdiContainer ではありません。パラメータ名: 値」というエラーが表示されます。次に、展開して開いているフォームの数を確認します。私は今発見した驚くべき結果を得ました。2 つのオープン フォームがあります。それらの1つは、私が持っているLoginFormです this.Hide(); ログインに成功した場合。this.Close(); に変更したとき。アプリケーションは閉じられました。まだ開いているのはなぜですか?また、アプリケーションを閉じずに閉じるにはどうすればよいですか?

4

1 に答える 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 に答える