¿El evento KeyDown no se dispara con .NET WinForms?

ya tengo KeyPreview establecer en true en las propiedades del formulario

Estoy trabajando en un programa pequeño, y tengo un problema en el que parece que algunos de los controles dentro de los cuadros de grupo no activan el evento KeyDown en mi formulario cuando presiono y suelto cualquier tecla de flecha, solo el evento KeyUp . ¿Hay algún problema con mi código que pueda estar causando esto?

Específicamente, habilité KeyPreview en el formulario y establecí puntos de interrupción ene.SuppressKeyPress = True en ambas subrutinas, y solo la de frmMain_KeyUp llega al punto de interrupción.

Agregué en los dos eventos de GroupBox con la esperanza de que pudieran mitigar el problema, pero no tuve esa suerte. Sin embargo, tengo un control personalizado en el formulario que está específicamente codificado para ignorar estas pulsaciones de teclas, y el código funciona como se espera en él.

  Private Sub frmMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown, GroupBox1.KeyDown, GroupBox2.KeyDown
      e.SuppressKeyPress = True
      Select Case e.KeyCode
          Case Keys.Left
              ScrollDir = ScrollDir Or 1
          Case Keys.Right
              ScrollDir = ScrollDir Or 2
          Case Keys.Down
              ScrollDir = ScrollDir Or 4
          Case Keys.Up
              ScrollDir = ScrollDir Or 8
          Case Else
              e.SuppressKeyPress = False
      End Select
      tScroll.Enabled = True
      tScroll_Tick(Nothing, Nothing)
  End Sub

  Private Sub frmMain_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp, GroupBox1.KeyUp, GroupBox2.KeyUp

      e.SuppressKeyPress = True
      Select Case e.KeyCode
          Case Keys.Left
              ScrollDir = ScrollDir And (Not 1)
          Case Keys.Right
              ScrollDir = ScrollDir And (Not 2)
          Case Keys.Down
              ScrollDir = ScrollDir And (Not 4)
          Case Keys.Up
              ScrollDir = ScrollDir And (Not 8)
          Case Else
              e.SuppressKeyPress = False
      End Select
      If ScrollDir = 0 Then tScroll.Enabled = False
  End Sub

El código en el control de usuario que "ignora" las pulsaciones de tecla es como tal:

    Private Sub TileDropDown_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyValue = 40 OrElse e.KeyValue = 38 OrElse e.KeyValue = 39 OrElse e.KeyValue = 37 Then

            e.SuppressKeyPress = True
        End If
    End Sub

Respuestas a la pregunta(2)

Su respuesta a la pregunta