Haga clic en eventos en la matriz de botones

¿Cómo puedo obtener el nombre del objeto que se pulsó por última vez en un panel? El truco es que hay una gran variedad de botones en el panel (btn [1] ... btn [200]). ¿Cómo puedo verificar si hice clic en el botón b [180], b [11] o incluso fuera del panel (sin botón)? También los botones se generan en la carga de la página a través de la codificación. Gracias. Anna

EDIT: ¡Gracias! Otro problema que surgió (esto generó una referencia de objeto NULA): tengo un método al mismo nivel que buttonHandler (), se llama HowManyClicked () y se llama desde buttonHandler (). Dentro de HowManyClicked () quiero identificar el Botón btn1 = Panel2.FindControl (x) como Botón; donde x es, por ejemplo, buttonArray [2,3]. Pero siempre consigo NULL.¿Es la matriz de botones buttonArray no identificable por nombre una vez fuera del método que lo generó???

        public void buttonHandler(object sender, EventArgs e)
        {
            Button btn = sender as Button;
            //string tt = btn.ToolTip.ToString();
            btn.BackColor = Color.Red;
            statusL.Text = HowManyClicked().ToString();

        }

        public int HowManyClicked()
        {
            int sum=0;
            for (int a = 0; a < 10; a++)
                for (int b = 0; b < 14; b++)
                {
                    string x = "buttonArray[" + a + ", " + b + "]";
                    statusL.Text = x;
                    Button btn1 = Panel2.FindControl(x) as Button;
                    if (btn1.BackColor == Color.Red) sum += 1;

                }
            return sum;
        }

Respuestas a la pregunta(3)

Su respuesta a la pregunta