Yibs317 Ответов: 3

Помощь в создании пользовательских сочетаний клавиш для программы VB


Всем привет. У меня возникли небольшие проблемы с созданием пользовательского сочетания клавиш для моей программы. У меня есть 2 формы (frmMain и frmSelect). Я пытаюсь получить ярлык CRTL+S, чтобы открыть frmSelect из frmMain.

Это то, что я думал попробовать, но форма не открывается, когда я нажимаю CRTL и S.

Private Sub frmMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.ControlKey + Keys.S Then
            frmSearch.Show()
        End If
    End Sub


Любая помощь очень ценится....

3 Ответов

Рейтинг:
2

Anshul R

Грубый, но эффективный метод состоит в том, чтобы создать строку меню, установить ее Visible собственность на False Затем добавьте все ваши команды,напишите для них код и назначьте нужные ярлыки.


Рейтинг:
2

jasminkanthariya

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    'Trace Control + Key Event in VB6.0 
    '===========================================================
    If KeyCode = Asc("F") And Shift = 2 Then
        Call Command8_Click
    ElseIf KeyCode = Asc("D") And Shift = 2 Then
        Call Command9_Click
    ElseIf KeyCode = Asc("M") And Shift = 2 Then
        Call Command10_Click
    ElseIf KeyCode = Asc("P") And Shift = 2 Then
        Call Command11_Click
    ElseIf KeyCode = Asc("M") And Shift = 2 Then
        Call Check1_Click
    End If
    '===========================================================
End Sub




'VALUES FOR Shift  KEYS
'=====================================================
				  'SHIFT KEY = 1	
				  'CTRL KEY = 2
				  'CTRL + SHIFT KEY = 3
				  'ALT KEY = 4
				  'ALT+SHIFT KEY = 5
				  'CTRL+ALT KEY = 6
				  'ATRL+SHIFT+ALTER KEY = 7


Richard MacCutchan

Этому вопросу уже более 5 лет!

Рейтинг:
0

Bill9603

Это связано с обработкой кодов. Если вы добавили " ключи.S", которому присваивается значение 83, а" ControlKey " - значение 17. В итоге вы получите 100, что соответствует "4" на цифровой клавиатуре. Если вы нажмете "4" на цифровой клавиатуре, откроется ваша вторая форма.

Чтобы этого не случилось, попробуйте сделать вот что. Проверяя логические значения, вы убедитесь, что код ключа соответствует тому, что вы хотели.

Private Sub frmMain_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    If e.KeyCode = Keys.S And e.Control = True Then
        frmSearch.Show()
    End If
End Sub