none
Leer matriz de botones RRS feed

  • Pregunta

  • hola:

    Resulta que tengo declarada una matriz de botones 3x3, hasta ahi todo bien pero ahora necesito saber cuando se ha pulsado algun boton de la matriz, ya que cada boton debera hacer algo diferente.

    Mi idea es usar un swich con boton[0,0] por ejm, he ir haciendo algo diferente cuando se preciona algun boton

    aca les muestro el codigo.

    private void Form1_Load(object sender, EventArgs e)
            {
                Button[,] boton = new Button[3, 3];
                for (int i = 0; i < 3; i++)
                {
                    for (int j = 0; j < 3; j++)
                    {
                        boton[i, j] = new Button();
                        boton[i, j].Width = 50;
                        boton[i, j].Height = 50;
                        //boton[i, j].Text = String.Format("{0},{1}",i,j);
                        boton[i, j].Top = (i * 50) + 10;
                        boton[i, j].Left = (j * 50) + 10;
                        this.Controls.Add(boton[i, j]);

                    }
                }
                boton[0, 0].Text = "1";
                boton[0, 1].Text = "2";
                boton[0, 2].Text = "3";
                boton[1, 0].Text = "4";
                boton[1, 1].Visible = false;
                boton[1, 2].Text = "6";
                boton[2, 0].Text = "7";
                boton[2, 1].Text = "8";
                boton[2, 2].Text = "9";
                       
            }

    Espero que alguien pueda ayudarme.

    gracias


    • Editado Sttev sábado, 24 de agosto de 2013 22:12
    sábado, 24 de agosto de 2013 22:06

Todas las respuestas

  • Hola.

    Tienes varias formas de hacerlo.

    Quizás la más sencilla sea declarar un mismo evento Click y asignarlo a cada botón. Luego el Sender del evento es un puntero al botón que se pulsó.

    No puedo ponerte un ejemplo porque ahora no tengo a mano una versión que soporte Windows Forms en C++/CLI, pero la firma del evento debería ser algo como

    void Button_Click(Object ^sender,ClickButtonEventsArgs ^e);

    Sender, moldeado a Button, será el botón pulsado.

    Luego, cuando crees los botones, asigna el evento Click a dicho método. Algo así:

    boton[x,y]->Clic+=new EventHandler(this, Button_Click).

    De nuevo no estoy completamente seguro del código. Para ello, hazte un ejemplo de prueba, pon un botón y asigna el evento clic desde el editor visual de Visual Studio y copia el resultado en tus botones.


    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/

    viernes, 30 de agosto de 2013 14:33
    Moderador