Keyboard message are posted to the window that has the focus. As long as your Form doesn't have any child controls, the form will get the focus when it is activated. Even though it isn't very good at dealing with getting the focus, it doesn't have any way to indicate that it has the focus for example and doesn't itself have any use for keystrokes.
That changes as soon as you put a control on the form that does like getting the focus. Like a Button. Now that control always gets the focus and you cannot give it back to the form. Accordingly, the form stops receiving WM_KEYDOWN messages, they go to the Button instead.
There is a way to have the form respond to keystrokes, they can be important if they are short-cut keys. Like F1 should display help, regardless of what control has the focus. There's built-in support for that in Winforms, you can override the ProcessCmdKey() method. Like this:
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
If keyData = Keys.Control Or Keys.A Then
MessageBox.Show("yada")
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
Paste this in your form's code and test it by pressing Ctrl+A.