Как проверить открыты дочерние формы или нет?

У меня есть родительская форма MDI. Под этим родителем MDI есть много дочерних форм MDI. Как проверить открыта ли дочерняя форма?

            foreach (Form frm in this.MdiChildren)
            {
                if (frm == null)
                {
                   //code.....
                }
            }

Но это не работает.


person Animesh Ghosh    schedule 16.04.2014    source источник
comment
Что ты имеешь в виду под открытым или нет? Проверить frm.Visible   -  person Sriram Sakthivel    schedule 16.04.2014


Ответы (1)


Как только вы закроете дочерние формы, они должны исчезнуть из коллекции MdiChildren.

Итак, вы можете просто использовать это:

if (!MdiChildren.Any())
{
    // all child forms closed
}

Если вы только что скрыли дочерние формы, а не закрыли их, вы можете использовать:

if (MdiChildren.All(c => !c.Visible))
{
    // all child forms hidden/closed
}
person Grant Winney    schedule 16.04.2014