Клавиатурни събития

Клавиатурните събития възникват във формуляра и елемента на формуляра, когато потребителят натиска клавиши на клавиатурата или когато се изпълнява макросът sendKeys.

Всички събития на клавиатурата се свързват с обекта във формуляра, който в момента има фокус. Обикновено това е един от контролите. Формуляр може да получи фокус само (и следователно събитията от клавиатурата могат да бъдат свързани с формуляра) само ако всички негови контроли са деактивирани или невидими. Ако искате да обвържете тези събития конкретно с формуляра, а не с елемента на формуляра, тогава можете да зададете свойствотоПрехващане на натискания на клавиши(KeyPreview) за формуляра на Да. След това всички събития на клавиатурата възникват първо за формуляра и след това за контролата, която има фокус. Това дава възможност да се програмира реакцията на формуляра на определени натискания на клавиши, независимо коя контрола на формуляра има фокус.

Забележка

Клавиатурните събития не са дефинирани за контроли в отчетите и за квадратчета за отметка и радио бутони в групи. Те се определят само за групата като цяло.

Клавиш надолуиБутон нагоре

СъбитиятаКлавиш надолу(KeyDown) иКлавиш нагоре(KeyUp) възникват всеки път, когато потребителят натисне или пусне клавиш на клавиатурата, докато фокусът е върху контрола или формуляр. Тези процедури за обработка на събития се използват, когато се изисква да се определи кой клавиш е натиснал потребителят - функционален клавиш, клавиш за управление на курсора, клавиш на цифровата клавиатура или клавишна комбинация с , или . Те имат два параметъра: KeyCode и Shift. Параметърът KeyCode е цяло число, представляващо кода на клавиша, който е бил натиснат. Параметърът Shift ви позволява да определите кои клавишни комбинации са били натиснати: 1 - съвпада, 2 - , 4 - , 0 - неизползвана е клавишна комбинация. Ако клавишната комбинация , , е била натисната във всяка комбинация, тогава параметърът Shift ще бъде равен на сумата от стойностите на всеки клавиш.

Натиснат клавиш

СъбитиетоKeyPress(KeyPress) възниква, когато потребителят натисне и пусне която и да е клавишна комбинация върху контролата или формуляра, който има фокус. За разлика от събитиятаKey Down(KeyDown) иKey Up(KeyUp), това събитие не възниква при натискане на функционалните клавиши, клавишите на курсора и клавишите , или . Освен това тези събития са различни за главни и малки букви. Процедурата за реално събитие има един аргумент: KeyAscii е цяло число, представляващо кода на натиснатия клавиш.

Ако потребителят натисне и задържи клавиш, събитиятаKey Down(KeyDown) иKey Pressed(KeyPress) се повтарят, докато потребителят пусне клавиша. След това възниква събитиетоКлавиш нагоре(KeyUp).

Ако резултатът от натискането на клавиш е преместване на фокуса от един елемент към друг, тогава събитиетоКлавиш надолу(KeyDown) възниква за първия елемент, а събитиятаНатискане на клавиш(KeyPress) иКлавиш нагоре(KeyUp) възникват за втория.

Ако в резултат на натискане на клавиш се появи диалогов прозорец, събитиятаKey Down(KeyDown) иKey Pressedсе задействат, но събитиятаKey Up(KeyUp) не се задействат.