Visual Basic, .NET, ASP, VBA, VBScript
 
  Библиотека кодов  
  Мышь и клавиатура  
     
  Одновременное нажатие нескольких клавиш  
  Данный пример позволяет определить, какие клавиши пользователь нажал одновременно. Данный пример идеально применим при создании игрушек, когда необходимо пользоваться клавишами управления (4 серые клавиши со стрелками).

Добавьте на форму 5 элементов Label


'Массив currectKeys содержит в себе все нажатые клавиши
'Для примера, если нажата клавиша ПРОБЕЛ, элемент массива currentKeys(32) = True
'(потому что keyCode клавиши равен 32), а все остальные клавиши = False.
Dim currentKeys(0 To 250) As Boolean
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'При нажатии на клавишу запускается событие KeyDown снова и снова.
'Идет проверка: нажата клавиша только что клавиша уже нажата
If currentKeys(KeyCode) = False Then
'Обновить массив, если клавиша нажата
currentKeys(KeyCode) = True
If KeyCode = vbKeyLeft Then Label1 = "Left"
If KeyCode = vbKeyRight Then Label2 = "Right"
If KeyCode = vbKeyUp Then Label3 = "Up"
If KeyCode = vbKeyDown Then Label4 = "Down"
If KeyCode = vbKeySpace Then Label5 = "Fire"
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
'Обновить массив, когда клавиша отжата
currentKeys(KeyCode) = False
If KeyCode = vbKeyLeft Then Label1 = ""
If KeyCode = vbKeyRight Then Label2 = ""
If KeyCode = vbKeyUp Then Label3 = ""
If KeyCode = vbKeyDown Then Label4 = ""
If KeyCode = vbKeySpace Then Label5 = ""
End Sub
Private Sub Form_Load()
'Обнулить значения элементов Label
Label1 = ""
Label2 = ""
Label3 = ""
Label4 = ""
Label5 = ""
End Sub
 
     
  VBNet online (всего: 51616)  
 

Логин:

Пароль:

Регистрация, забыли пароль?


В чате сейчас человек
 
     
  VBNet рекомендует  
   
     
  Лучшие материалы  
 
ActiveX контролы (112)
Hitman74_Library (36119)
WindowsXPControls (20739)
FlexGridPlus (19374)
DSMAniGifControl (18295)
FreeButton (15157)
Примеры кода (546)
Parol (18027)
Passworder (9299)
Screen saver (7654)
Kerish AI (5817)
Folder_L (5768)
Статьи по VB (136)
Мое второе впечатление... (11236)
VB .NET: дорога в будущее (11161)
Основы SQL (9225)
Сообщения Windows в Vi... (8788)
Классовая теория прогр... (8619)
 
     
Техническая поддержка MTW-хостинг | © Copyright 2002-2011 VBNet.RU | Пишите нам