I can detect single key downs with this code, however once I push multiple keys vb.net ignores previous key and only focuses on the other key. Can someone help me figure out how to detect multiple keydowns at the same time?
Private Sub frmMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.W Or e.KeyCode = Keys.S Or e.KeyCode = Keys.A Or e.KeyCode = Keys.D Then
lblDrive.Text = "Driving: "
If e.KeyCode = Keys.W Then
lblDrive.Text = lblDrive.Text & "FORWARD "
End If
If e.KeyCode = Keys.S Then
lblDrive.Text = lblDrive.Text & "REVERSE "
End If
If e.KeyCode = Keys.A Then
lblDrive.Text = lblDrive.Text & "LEFT "
End If
If e.KeyCode = Keys.D Then
lblDrive.Text = lblDrive.Text & "RIGHT "
End If
End If
End Sub
Can you keep a list of keys that are down, and remove them from this list on KeyUp?
The KeyDown event only tells you when a new key is down. You also won’t get KeyDown messages for keys pressed simultaneously… because the keys are never actually pressed simultaneously.
So, upon KeyDown, add the key to your list/array/whatever, and upon KeyUp, remove it from that list.