Я использую DevExpress NavBar в качестве основного меню для моего приложения MDI, а одна из групп NavBar содержит элементы, представляющие открытые дочерние формы MDI. У меня возникают проблемы с обновлением меню, когда закрывается дочерняя форма MDI.Обновление списка дочерних форм MDI после закрытия формы
Я должен использовать Form.MdiChildren коллекции для создания группы меню, но проблема в том, при использовании Form.FormClosing событие, что закрытая форма до сих пор в коллекции Form.MdiChildren. Я попытался использовать System.Timers.Timer, чтобы подождать 1 секунду, а затем обновить меню, но я получаю различные исключения из-за асинхронного поведения (когда пользователь быстро закрывает несколько форм).
Я также не могу сохранить свой собственный список детей MDI из-за сложности дизайна классов.
У кого-нибудь есть изящное решение для этого?
Спасибо за этот ответ, но мне действительно нужно использовать сборку Form.MdiChildren, чтобы отслеживать открытые формы. Это единственный объект, который я могу получить все необходимые данные открытых форм. У меня нет контроля над открытием формы с помощью Form.Show(). – vpetrovic
Тогда вам следовало бы объяснить это требование в деталях, потому что оно невероятно ограничительное и довольно необычное. – DonBoitnott
Да, после изучения моего кода мне удалось настроить этот подход. Я использовал событие вместо защищенного метода, потому что я не могу расширять родительскую форму MDI. Спасибо. – vpetrovic