|
|
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Подскажите, пожалуйста, как обработать событие "нажатие клавиши" на форме. В смысле, хочется, чтобы отлавливать реакцию только на определенные клавиши, а остальные работали бы так, словно их ничто не перехватывает. Сейчас делаю примерно так: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case Shift Case 1 'Shift Key Down Select Case KeyCode ... End Select Case 2 'Ctrl Key Down Select Case KeyCode ... Case vbKeyF4 DoCmd.Close acForm, Me.Name 'вот здесь приходится вставлять код, 'который дублирует стандартную реакцию на нажатие кнопки. Case vbKeyP Call Другая_подпрограмма End Select Case 4 'Alt Key Down Select Case KeyCode ... End Select Case Else Select Case KeyCode ... End Select End Select KeyCode = 0 End Sub А как сделать так, чтобы не перечислять стандартные сочетания клавиш в Case? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 18:25:16 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
имхо, достаточно их не перечислять и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 18:57:28 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
Не-а. Ежели не перечисляю, то просто на них никак не реагирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 20:13:39 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
DmyttroНе-а. Ежели не перечисляю, то просто на них никак не реагирует. Если не реагирует, значит выполняется KeyCode = 0. Надо, чтобы не выполнялось. Например: case else exit sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 20:16:09 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
2 Владимир Саныч Если убираю KeyCode = 0, то картина становится интересной. Допустим, хочу, чтобы при сочетании Ctrl+P открывался соответствующий отчет. Так вот при отсутствующем KeyCode = 0 он не только открывается. но и сразу появляется диалог печати. т.е., насколько я понимаю, Access воспринимает нажатие и как того хочу я, и как стандатрное событие сразу (в смысле последовательно)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 20:25:31 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
Dmyttroт.е., насколько я понимаю, Access воспринимает нажатие и как того хочу я, и как стандатрное событие сразу (в смысле последовательно)? Совершенно верно. Аксесс сначала исполняет то, что написано в процедуре обработчика, а потом то, что он хочет делать сам. Чтобы отменить второе, пишется KeyCode = 0 (разумеется, только для тех клавиш, для которых надо). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 20:55:12 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
Т.е. если я в конце каждого case (после вызова определенных действий) напишу KeyCode = 0, это будет гуд? Попробовал, вроде как работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 21:06:16 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
Работает - значит хорошо. Но я имел в виду по-другому. select case keycode case ... case ... case else exit sub end select keycode=0 Красное - это то, что я предложил добавить (см. мой пост от 20:16). Остальное в программе уже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 21:09:06 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
Спасибо, как раз самое оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2004, 21:36:51 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч, выручай. Хоть, как говорится, кто старое помянет (в смысле, старый топик)... Тем не менее, только сегодня понял, что что-то не так. Все вроде было бы нормально, но есть одно но. Когда при помощи tab перехожу на кнопку и нажимаю Enter, то выполняется действие совсем не то, что мне нужно. Ежели же нажимаю эту кнопку мышью, все ОК. Что еще в коде я пропустил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 16:14:41 |
|
||
|
Перехват нажатия клавиш в форме
|
|||
|---|---|---|---|
|
#18+
2 All Уважаемые, хоть вопрос, конечно, в-основном, к Санычу, но это не значит, что чьи-либо умные мысли по поводу останутся незамеченными - буду премного благодарен. Код весь как на ладони в постах выше, вопрос - в предыдущем моем посте. Я так понимаю, что надо вставиь какую-то реакцию на VbKeyReturn. Но какую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2004, 16:43:56 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32711260&tid=1671439]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 348ms |

| 0 / 0 |
