Ben projelerde butona bağlamak yerine form nesnesinin kod bloğu içerisinde override ederek bu işlemi yapıyorum.
Örneğin:
 protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == (System.Windows.Forms.Keys.F2))
                btnKaydet.PerformClick();
            else if (keyData == (System.Windows.Forms.Keys.F3))
                btnSil.PerformClick();
            else if (keyData == (System.Windows.Forms.Keys.F4))
                btnKapat.PerformClick();
            else if (keyData == (System.Windows.Forms.Keys.F1))
                btnTemizle.PerformClick();
            return base.ProcessCmdKey(ref msg, keyData);
        }