Access 2002

Запрет перехода к другой записи


Однако, к счастью, такой механизм есть. Если свойству формы KeyPreview присвоить значение Yes, в ответ на нажатие пользователем любой клавиши вначале будут вызываться обработчики соответствующих событий формы, и только потом, если вы не отмените событие, информация о нем будет перенаправляться элементу управления.

Предположим, вы присвоили свойству Cycle значение 1 и не хотите, чтобы пользователь мог переходить от записи к записи с помощью клавиш PgUp и PgDn. В ранних версиях Access вам потребовалось бы написать обработчик события KeyDown для каждого элемента управления формы. Теперь же достаточно присвоить свойству KeyPreview значение Yes и связать с событием формы KeyDown код:

Присвоив параметру KeyCode значение 0, вы указываете Access полностью проигнорировать данное нажатие клавиш. Именно так работает форма frmCustomers, из которой мы и взяли приведенный выше код. Откройте ее и попробуйте нажать клавиши PgUp и PgDn. Форма не должна на них реагировать.

Навигация по ленточным формам как по электронным таблицам

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

Это возможно благодаря свойству KeyPreview. Если выбрать для него значение Yes, вы сможете написать обработчик события формы KeyDown, который будет вызываться до того, как информация о нажатии клавиши достигнет элемента управления. В нем мы и выберем нужное поле в ответ на нажатие клавиш со стрелкой вверх или вниз. Вследствие нажатия любой из этих клавиш обработчик события формы KeyDown должен присваивать параметру KeyCode значение 0, чтобы Access не выполняла стандартную обработку этого события.

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