Возможное решение (я использую в C #) - хранить каждый открытый экземпляр формы в списке var.Например, у вас может быть глобальный список с именем openForms ;когда создается каждая форма, сама форма может добавить свою ссылку на openForms и удалить ее при закрытии.
Когда пользователь пытается закрыть ваше приложение, вы можете проверить, что число списков больше нуля и, еслипользователь хочет действительно закрыть, вы корректно закрываете каждый экземпляр формы, содержащийся в opensForms, прежде чем закрывать приложение.