Процедура ToggleWalk позволяет обходить все контролы на форме по нажатию клавиши Enter, - т.е. так же, как по нажатию клавиши TAB.
Вроде бы обычная и несложная задача - ставим форме KeyPreview = True, пишем код события Form_KeyPress, и так далее, НО:
1. Попробуйте обойти все контролы по Enter, когда на форме есть кнопка, у которой свойство Default = True. Вы скажете - "А на кой чёрт мне делать такую кнопку на своей форме, если я собираюсь гулять по ней по Enter?" - Правильно, но всё же?
2. Попробуйте нажать Enter, когда фокус стоит даже на обычной кнопке (т.е. у которой Default = False) - ваш перехват кода vbKeyReturn в событии Form_KeyPress не поможет: кнопка всё равно нажмётся!
При обходе контролов учитывается их способность "принять" фокус - т.е. наличие метода SetFocus, свойства TabIndex, текущие значения свойств Enabled и Visible.
Вроде бы обычная и несложная задача - ставим форме KeyPreview = True, пишем код события Form_KeyPress, и так далее, НО:
1. Попробуйте обойти все контролы по Enter, когда на форме есть кнопка, у которой свойство Default = True. Вы скажете - "А на кой чёрт мне делать такую кнопку на своей форме, если я собираюсь гулять по ней по Enter?" - Правильно, но всё же?
2. Попробуйте нажать Enter, когда фокус стоит даже на обычной кнопке (т.е. у которой Default = False) - ваш перехват кода vbKeyReturn в событии Form_KeyPress не поможет: кнопка всё равно нажмётся!
При обходе контролов учитывается их способность "принять" фокус - т.е. наличие метода SetFocus, свойства TabIndex, текущие значения свойств Enabled и Visible.