Автор статьи: Беседин Игорь
Как выполнить подпрограмму с помощью "горячих клавиш"?
В некоторых программах на Command Button расположена надпись с какой-либо подчеркнутой буквой, и при нажатии на эту букву выполняется то же самое, что и при нажатии на этот объект. Этот же эффект можно реализовать на VB, но для начала разберемся что к чему.
У Command Button есть свойство Caption - это то, что отображается на самом объекте. Вставив в это свойство знак &, мы в результате получим подчеркивание следующего символа - клавишу быстрого ("горячего") доступа.
Теперь для реализации кода нужно вставить объект: Command Button (с любым именем) и присвоить свойству Form1.KeyPreview=True (этим мы будем передавать все нажатые клавиши в событие Form_KeyPress). И, наконец, вставляем код.
Function
RunKey(Key As Integer)
On Error Resume Next
Dim Object As Object
Dim A As Integer
For Each Object In Me.Controls
A = InStr(Object.Caption, "&")
'Узнаем номер символа &.
If
A > 0 Then
If UCase(Mid(Object.Caption, A + 1, 1)) = UCase(Chr(Key)) Then
Object.Value = True
'Присвоив
значение True, мы активизируем событие Click
Exit Function
End If
End If
Next
End Function
Private Sub Command1_Click()
MsgBox "Вы вызвали выполнение этой
подпрограммы"
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
RunKey (KeyAscii)
'Вызываем
функцию, и передаем ей значение нажатой
клавиши
End Sub
Этот код будет работать, при условии, что в Command1.Caption только один раз встречается символ &, в противном случае нужно будет изменить код нахождения символа - найти не первый встречаемый символ, а последний, т.е. вместо
A = InStr(Object.Caption, "&")
поставить
For
i = Len(Object.Caption) - 1 To 1 Step -1
A = InStr(i, Object.Caption, "&")
If A > 0 Then Exit For
Next
или в VB 6.0
A=Len(Object.Caption) - Instr(StrReverse(Object.Caption),"&")
Так, что выбирайте.
При любом воспроизведении этой статьи (и других статей с этого сайта) ставьте ссылку на сайт www.igoryksoft.narod.ru