Tratando de detectar la pulsación de tecla

Hice un método que detecta cuando se presiona una tecla, ¡pero no funciona! Aquí está mi código

void KeyDetect(object sender, KeyEventArgs e)
{ 
    if (e.KeyCode == Keys.W && firstload == true)
    {
        MessageBox.Show("Good, now move to that box over to your left");
        firstload = false;
    }
}

También intenté hacer un controlador de clave, pero se dice que "no se puede asignar a la detección de clave porque es un grupo de métodos"

public Gwindow()
{
    this.KeyDetect += new KeyEventHandler(KeyDetect);
    InitializeComponent();    
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta