パネルにいくつかのフォームを追加しました。フォームにはプロパティがあります
form.TopLevel = false;
form.Parent = pnlMain;
ここで、pnlMainのすべてのフォームを繰り返し処理し、すべてのフォームを閉じます。そのために、次のコードがあります。
private void CloseForms()
{
foreach(Form form in pnlMain.Controls.OfType<Form>())
form.Close();
}
私の問題は、すべてのフォームが閉じているわけではないということです。
4つのオープンフォームの例:オープンフォームを数えましたが、
int count = pnlMain.Controls.OfType<Form>().Count();
CloseFormsを呼び出すと、2つのフォームのみが閉じられます。他の2つは、CloseFormsでの別の呼び出しで閉じられます。
1回の呼び出しですべてのフォームを閉じるにはどうすればよいですか?