Access 2002

Закрытие всех экземпляров формы


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

по очереди удалить из коллекции все ссылки (форма, на которую нет ни единой ссылки, автоматически закрывается);

по очереди сделать активной и явно закрыть каждую форму.

Мы выбрали второй метод по следующей причине. В нашем простом примере прекрасно сработал бы и первый метод: мы поместили соответствующий код в процедуру Closelnstances, вызываемую из обработчика события Close, но закомментировали его, чтобы он не выполнялся. Однако если бы форма была сложнее и содержала правила проверки вводимых в нее данных, возможно, какой-то из ее экземпляров нельзя было бы так просто закрыть. Второй метод, закрывающий формы явно, гарантирует, что Access не закроет форму, пока не убедится в правильности введенных в нее данных.

Код, вызываемый в ответ на нажатие кнопки Close Instances, очень прост.

Весь код этого простого примера работы с экземплярами формы вы найдете в модуле basFormlnstance. Конечно, его придется модифицировать в каждом приложении, но все же он послужит хорошей основой.

Одна форма в этом примере отличалась от других — это исходная форма. Она открывалась вручную, и мы не включали ее в коллекцию. Именно из нее открывался первый дополнительный экземпляр, однако поступать так не обязательно. При создании дополнительного экземпляра формы программным путем исходная форма может быть закрыта — главное, чтобы эта форма присутствовала в текущем файле, тогда Access сможет найти ее класс и создать его экземпляр.

Использование экземпляра формы в роли диалогового окна

В разделе «Создание всплывающих форм» рассказывалось о том, как открывать формы в режиме диалоговых окон.

Комментарии закрыты