Я хочу отключить команду Ctrl + A (выбрать все) в Access 2007. Это возможно?
5 ответов
Вы можете использовать этот код в Access, чтобы поймать CTRL+A и игнорировать его. Недостатком является то, что вам придется добавлять это к каждой форме, которую вы хотите заблокировать. (верх: вам не нужно блокировать все формы)
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyA And Shift = acCtrlMask Then 'Catch Ctrl+A
KeyCode = 0 'Suppress keypress
End If
End Sub
Добавьте это в Form > On Key Down
Event
ВАЖНО: Прокрутите вниз до конца списка событий и измените Key Preview
на Yes.
Создайте макрос с именем AutoKeys. В первом столбце введите ^ A, а во втором выберите Beep из выпадающего списка. Это будет вызывать звуковой сигнал в любое время ^ A нажат в любом месте вашего приложения.
Если вы хотите абсолютно ничего не делать (т. Е. Без BEEP), вам нужно написать функцию для вызова, которая ничего не делает, и вызвать ее с помощью действия RunCode.
Если вы хотите разрешить это в некоторых контекстах, а не в других, вам придется написать более сложный код для этого. Я не совсем уверен, как будет выглядеть этот код, поскольку он поднимает ряд интересных проблем.
И, конечно же, это вопрос StackOverflow ...
(Честно говоря, я думаю, что весь этот вопрос всегда был там, поскольку ответы требуют либо написания кода, либо создания чего-то похожего на код, то есть макроса)
#IfWinActive, ahk_class OMain
^a::Return
#IfWinActive
На языке автоматизации Autohotkey .
В качестве альтернативы:
#IfWinActive, ahk_class OMain
^a::MsgBox, Oh god oh god we're all going to die
#IfWinActive
Я так не думаю. Эта комбинация клавиш одинакова в большинстве пакетов (не только в MS) и определена на довольно базовом уровне.
Конечно, это когда кто-то другой приходит и доказывает, что я не прав
Следующий код выбирает весь текст в текстовом или комбинированном окне (вместо выбора всей таблицы).
Используйте этот код в событии KeyDown формы, и не забудьте также установить для свойства "Предварительный просмотр ключа" в свойствах события формы значение "Да" (в противном случае это не вызовет событие нажатия клавиши для CTRL + A).
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyA And Shift = acCtrlMask Then
If TypeOf Me.ActiveControl Is TextBox Then
Dim txt As TextBox
Set txt = Me.ActiveControl
txt.SelStart = 0
txt.SelLength = Len(txt.text)
ElseIf TypeOf Me.ActiveControl Is ComboBox Then
Dim cmb As ComboBox
Set cmb = Me.ActiveControl
cmb.SelStart = 0
cmb.SelLength = Len(cmb.text)
End If
KeyCode = 0 ' Cancel the default action (of selecting the entire table)
End If
End Sub