2014-07-04 4 views
0

Im кодирование в vb6 и для удовольствия подумал, что я буду играть с событием keypress, чтобы все двигалось. Я пришел к быстрому осознанию того, что ОЧЕНЬ ограниченное количество клавиш ответит на ключевые события пресса. Я хотел использовать клавиши со стрелками, но кажется, что для них есть зарезервированные команды (VBKeyUp, VBKeyDown, VBKeyRight, VBKeyLeft), они просто ничего не делают. есть ли объяснение для этого или у них просто нет поддержки? Использование кода im используется ниже.Событие Keypress не работает?

Private Sub ListView67_KeyPress(KeyAscii As Integer) 
If KeyAscii = vbKeyUp Then 
Command1_Click 
End If 

If KeyAscii = vbKeyDown Then 
Command4_Click 
End If 

If KeyAscii = vbKeyRight Then 
Command2_Click 
End If 

If KeyAscii = vbKeyLeft Then 
Command3_Click 
End If 

End Sub 
+0

The KeyUp и KeyDown событий поддерживают более широкий диапазон клавиш, включая клавиши со стрелками. – jac

ответ

2

Используйте KeyDown событие вместо KeyPress

Private Sub ListView67_KeyDown(KeyCode As Integer, Shift As Integer) 
If KeyCode = vbKeyUp Then 
Command1_Click 
End If 

If KeyCode = vbKeyDown Then 
Command4_Click 
End If 

If KeyCode = vbKeyRight Then 
Command2_Click 
End If 

If KeyCode = vbKeyLeft Then 
Command3_Click 
End If 

End Sub 
+0

, что имеет смысл, но событие keydown не запускается с помощью этого кода. – NickHallick

+0

@NickHallick Этот код должен работать до тех пор, пока элемент управления ListView67 имеет фокус. – jac

+0

@Jac триггеры запуска keydown, но keyascii ничего не заполняет, когда я нажимаю клавишу со стрелкой – NickHallick

Смежные вопросы