Ciao a tutti!!!

sto facendo un semplice esercizio in c# in cui voglio che nella Form da me creata sia presente un bottone( è ininfluente la funzione che esegue, basta solo che sia presente ) ma che riconosca se pigio un tasto da tastiera.
Quel che non capisco è perchè se se il bottone non c'è la form riconosce l'ebvento generato da tastiera ( uso OnKeyDown) se invece inserisco il bottone non rivela che ho pigiato un pulsante.
Uso Visual Studio 2008, e mi sembra di aver inserito le librerie corrette.
Sapete aiutarmi?
Grazie



using System;
using System.Windows.Forms;
using System.Drawing;

class Form1 : Form
{

public Form1(){
this.BackColor = System.Drawing.Color.DarkBlue;
Button b = new Button();
this.Controls.Add(b);
}


protected override void OnKeyDown(KeyEventArgs e)
{
Console.WriteLine("asdfghn");
if (e.KeyCode == Keys.A)
{
Application.Exit();


}
base.OnKeyDown(e);
this.Invalidate();
}

public void clicking(object o, EventHandler e) {
MessageBox.Show("asdfghjkjcxz");
}
}