Это старый вопрос, но у меня возникла та же проблема, и я нашел хороший способ сделать это ...
Когда вызывается Application.DoEvent () , буфер нажатия клавиш вызывает событие KeyPress, но для _keypress установлено значение false, поэтому он пропускает все их, после того как _keypress возвращается в true, чтобы быть готовым к другому событию нажатия клавиши !
Public _keypress As Boolean
Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Form1.KeyPress
If Not _keypress Then
_keypress = True
//instructions
End If
Application.DoEvents()
_keypress = False
End Sub