Also zunächst solltest du mit DoubleBuffern arbeiten, dann flackert das nicht so.
private void gamePanel_Paint(object sender, PaintEventArgs e
{
using var bmp = new Bitmap(gamePanel.Width, gamePanel.Height);
using var g = Graphics.FromImage(bmp);
DrawGrid(g);
DrawTetromino(g);
e.Graphics.DrawImage(bmp, new Point(0, 0));
}
Dann hast du Button auf deiner Form, die unweigerlich den Fokus übernehmen werden, weil sie so konzipiert sind.
Du könntest z.B. so tun als ob es Buttons sind, und Rechtecke (Oder Ovale oder wie auch immer) auf deine Form "malen" (oder andere Controls wie ein Panel umfunktionieren) und dann das Form_Click / Mousedown benutzen um herauszufinden ob dieses Event auf eben einer deiner gemalten "Buttons" / Panel war und entsprechend reagieren.
Aber taste dich weiter heran, so wirst du viel mehr lernen dabei ;)